[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-merge] [RFC][PATCH] move Xen linux header files
Move Xen linux headers to more appropriate places. include/asm-xen/*.h -> include/xen/*.h include/asm-xen/xen-public/*.h -> include/xen/*.h include/asm-xen/linux-public/*.h -> include/linux/xen This is largely automated, builds and runs clean on i386 and x86_64. It's a simple step towards the the larger subarch patch I've posted. Signed-off-by: Chris Wright <chrisw@xxxxxxxx> --- linux-2.6-xen-sparse/include/asm-xen/balloon.h | 54 --- linux-2.6-xen-sparse/include/asm-xen/ctrl_if.h | 160 --------- linux-2.6-xen-sparse/include/asm-xen/evtchn.h | 135 -------- linux-2.6-xen-sparse/include/asm-xen/foreign_page.h | 30 - linux-2.6-xen-sparse/include/asm-xen/gnttab.h | 72 ---- linux-2.6-xen-sparse/include/asm-xen/hypervisor.h | 199 ------------ linux-2.6-xen-sparse/include/asm-xen/linux-public/privcmd.h | 90 ----- linux-2.6-xen-sparse/include/asm-xen/linux-public/suspend.h | 43 -- linux-2.6-xen-sparse/include/asm-xen/queues.h | 81 ---- linux-2.6-xen-sparse/include/asm-xen/synch_bitops.h | 2 linux-2.6-xen-sparse/include/asm-xen/xen_proc.h | 13 linux-2.6-xen-sparse/include/asm-xen/xenbus.h | 122 ------- linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/common.c | 2 linux-2.6-xen-sparse/arch/xen/i386/kernel/entry.S | 2 linux-2.6-xen-sparse/arch/xen/i386/kernel/head.S | 2 linux-2.6-xen-sparse/arch/xen/i386/kernel/io_apic.c | 4 linux-2.6-xen-sparse/arch/xen/i386/kernel/ioport.c | 2 linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c | 2 linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c | 2 linux-2.6-xen-sparse/arch/xen/i386/kernel/setup.c | 4 linux-2.6-xen-sparse/arch/xen/i386/kernel/smp.c | 2 linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c | 4 linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c | 2 linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c | 4 linux-2.6-xen-sparse/arch/xen/i386/mm/init.c | 2 linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c | 2 linux-2.6-xen-sparse/arch/xen/kernel/ctrl_if.c | 4 linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c | 12 linux-2.6-xen-sparse/arch/xen/kernel/gnttab.c | 8 linux-2.6-xen-sparse/arch/xen/kernel/reboot.c | 14 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/entry.S | 2 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/io_apic.c | 4 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/ioport.c | 2 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/pci-dma.c | 2 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/process.c | 4 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c | 4 linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c | 2 linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c | 8 linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c | 2 linux-2.6-xen-sparse/drivers/xen/blkback/common.h | 10 linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c | 8 linux-2.6-xen-sparse/drivers/xen/blkfront/block.h | 6 linux-2.6-xen-sparse/drivers/xen/blktap/blktap.h | 8 linux-2.6-xen-sparse/drivers/xen/blktap/blktap_datapath.c | 2 linux-2.6-xen-sparse/drivers/xen/blktap/blktap_userdev.c | 2 linux-2.6-xen-sparse/drivers/xen/console/console.c | 8 linux-2.6-xen-sparse/drivers/xen/evtchn/evtchn.c | 2 linux-2.6-xen-sparse/drivers/xen/netback/common.h | 6 linux-2.6-xen-sparse/drivers/xen/netback/netback.c | 6 linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c | 12 linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c | 6 linux-2.6-xen-sparse/drivers/xen/usbback/common.h | 6 linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c | 2 linux-2.6-xen-sparse/drivers/xen/usbfront/xhci.h | 2 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c | 4 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c | 6 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c | 2 linux-2.6-xen-sparse/include/asm-xen/asm-i386/fixmap.h | 2 linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h | 2 linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h | 4 linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h | 2 linux-2.6-xen-sparse/include/asm-xen/asm-i386/system.h | 4 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/fixmap.h | 2 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h | 2 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/page.h | 4 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h | 2 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/system.h | 6 linux-2.6-xen-sparse/include/linux/xen/privcmd.h | 90 +++++ linux-2.6-xen-sparse/include/linux/xen/suspend.h | 43 ++ linux-2.6-xen-sparse/include/xen/balloon.h | 54 +++ linux-2.6-xen-sparse/include/xen/ctrl_if.h | 160 +++++++++ linux-2.6-xen-sparse/include/xen/evtchn.h | 135 ++++++++ linux-2.6-xen-sparse/include/xen/foreign_page.h | 30 + linux-2.6-xen-sparse/include/xen/gnttab.h | 72 ++++ linux-2.6-xen-sparse/include/xen/hypervisor.h | 199 ++++++++++++ linux-2.6-xen-sparse/include/xen/queues.h | 81 ++++ linux-2.6-xen-sparse/include/xen/synch_bitops.h | 2 linux-2.6-xen-sparse/include/xen/xen_proc.h | 13 linux-2.6-xen-sparse/include/xen/xenbus.h | 122 +++++++ linux-2.6-xen-sparse/mkbuildtree | 6 tools/blktap/Makefile | 2 tools/libxc/Makefile | 2 tools/security/Makefile | 2 83 files changed, 1122 insertions(+), 1124 deletions(-) diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/common.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/common.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/common.c Thu Aug 4 22:18:07 2005 @@ -15,7 +15,7 @@ #include <asm/apic.h> #include <mach_apic.h> #endif -#include <asm-xen/hypervisor.h> +#include <xen/hypervisor.h> #include "cpu.h" diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/entry.S --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/entry.S Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/entry.S Thu Aug 4 22:18:07 2005 @@ -48,7 +48,7 @@ #include <asm/smp.h> #include <asm/page.h> #include "irq_vectors.h" -#include <asm-xen/xen-public/xen.h> +#include <xen/xen.h> #define nr_syscalls ((syscall_table_size)/4) diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/head.S --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/head.S Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/head.S Thu Aug 4 22:18:07 2005 @@ -22,7 +22,7 @@ #include <asm/segment.h> #include <asm/thread_info.h> #include <asm/asm_offsets.h> -#include <asm-xen/xen-public/arch-x86_32.h> +#include <xen/arch-x86_32.h> /* * References to members of the new_cpu_data structure. diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/io_apic.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/io_apic.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/io_apic.c Thu Aug 4 22:18:07 2005 @@ -44,8 +44,8 @@ #ifdef CONFIG_XEN -#include <asm-xen/xen-public/xen.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/xen.h> +#include <xen/physdev.h> /* Fake i8259 */ #define make_8259A_irq(_irq) (io_apic_irqs &= ~(1UL<<(_irq))) diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/ioport.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/ioport.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/ioport.c Thu Aug 4 22:18:07 2005 @@ -15,7 +15,7 @@ #include <linux/stddef.h> #include <linux/slab.h> #include <linux/thread_info.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/physdev.h> /* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */ static void set_bitmap(unsigned long *bitmap, unsigned int base, unsigned int extent, int new_value) diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c Thu Aug 4 22:18:07 2005 @@ -13,7 +13,7 @@ #include <linux/pci.h> #include <linux/version.h> #include <asm/io.h> -#include <asm-xen/balloon.h> +#include <xen/balloon.h> #include <asm/tlbflush.h> struct dma_coherent_mem { diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c Thu Aug 4 22:18:07 2005 @@ -48,7 +48,7 @@ #include <asm/i387.h> #include <asm/irq.h> #include <asm/desc.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/physdev.h> #ifdef CONFIG_MATH_EMULATION #include <asm/math_emu.h> #endif diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/setup.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/setup.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/setup.c Thu Aug 4 22:18:07 2005 @@ -53,8 +53,8 @@ #include <asm/io_apic.h> #include <asm/ist.h> #include <asm/io.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/hypervisor.h> +#include <xen/physdev.h> #include "setup_arch_pre.h" #include <bios_ebda.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/smp.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/smp.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/smp.c Thu Aug 4 22:18:07 2005 @@ -26,7 +26,7 @@ #if 0 #include <mach_apic.h> #endif -#include <asm-xen/evtchn.h> +#include <xen/evtchn.h> #define xxprint(msg) HYPERVISOR_console_io(CONSOLEIO_write, strlen(msg), msg) diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/smpboot.c Thu Aug 4 22:18:07 2005 @@ -62,7 +62,7 @@ #include <mach_wakecpu.h> #include <smpboot_hooks.h> -#include <asm-xen/evtchn.h> +#include <xen/evtchn.h> /* Set if we find a B stepping CPU */ static int __initdata smp_b_stepping; @@ -1324,7 +1324,7 @@ } #ifdef CONFIG_HOTPLUG_CPU -#include <asm-xen/ctrl_if.h> +#include <xen/ctrl_if.h> /* hotplug down/up funtion pointer and target vcpu */ struct vcpu_hotplug_handler_t { diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c Thu Aug 4 22:18:07 2005 @@ -70,7 +70,7 @@ #include "io_ports.h" -#include <asm-xen/evtchn.h> +#include <xen/evtchn.h> extern spinlock_t i8259A_lock; int pit_latch_buggy; /* extern */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c Thu Aug 4 22:18:07 2005 @@ -33,8 +33,8 @@ #include <linux/vmalloc.h> #include <asm/page.h> #include <asm/pgtable.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/balloon.h> +#include <xen/hypervisor.h> +#include <xen/balloon.h> #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) #include <linux/percpu.h> #include <asm/tlbflush.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/mm/init.c --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/init.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/init.c Thu Aug 4 22:18:07 2005 @@ -39,7 +39,7 @@ #include <asm/tlb.h> #include <asm/tlbflush.h> #include <asm/sections.h> -#include <asm-xen/hypervisor.h> +#include <xen/hypervisor.h> unsigned int __VMALLOC_RESERVE = 128 << 20; diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c Thu Aug 4 22:18:07 2005 @@ -24,7 +24,7 @@ #include <asm/io.h> #include <asm/mmu_context.h> -#include <asm-xen/foreign_page.h> +#include <xen/foreign_page.h> void show_mem(void) { diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/kernel/ctrl_if.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/ctrl_if.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/ctrl_if.c Thu Aug 4 22:18:07 2005 @@ -36,8 +36,8 @@ #include <linux/irq.h> #include <linux/interrupt.h> #include <linux/module.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/evtchn.h> +#include <xen/ctrl_if.h> +#include <xen/evtchn.h> #if 0 #define DPRINTK(_f, _a...) printk(KERN_ALERT "(file=%s, line=%d) " _f, \ diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c Thu Aug 4 22:18:07 2005 @@ -37,12 +37,12 @@ #include <asm/atomic.h> #include <asm/system.h> #include <asm/ptrace.h> -#include <asm-xen/synch_bitops.h> -#include <asm-xen/xen-public/event_channel.h> -#include <asm-xen/xen-public/physdev.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/evtchn.h> +#include <xen/synch_bitops.h> +#include <xen/event_channel.h> +#include <xen/physdev.h> +#include <xen/ctrl_if.h> +#include <xen/hypervisor.h> +#include <xen/evtchn.h> #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) EXPORT_SYMBOL(force_evtchn_callback); diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/kernel/gnttab.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/gnttab.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/gnttab.c Thu Aug 4 22:18:07 2005 @@ -16,10 +16,10 @@ #include <asm/pgtable.h> #include <asm/fixmap.h> #include <asm/uaccess.h> -#include <asm-xen/xen_proc.h> -#include <asm-xen/linux-public/privcmd.h> -#include <asm-xen/gnttab.h> -#include <asm-xen/synch_bitops.h> +#include <xen/xen_proc.h> +#include <linux/xen/privcmd.h> +#include <xen/gnttab.h> +#include <xen/synch_bitops.h> #if 1 #define ASSERT(_p) \ diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/kernel/reboot.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Thu Aug 4 22:18:07 2005 @@ -11,13 +11,13 @@ #include <linux/sysrq.h> #include <asm/irq.h> #include <asm/mmu_context.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/evtchn.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/xen-public/dom0_ops.h> -#include <asm-xen/linux-public/suspend.h> -#include <asm-xen/queues.h> -#include <asm-xen/xenbus.h> +#include <xen/ctrl_if.h> +#include <xen/evtchn.h> +#include <xen/hypervisor.h> +#include <xen/dom0_ops.h> +#include <linux/xen/suspend.h> +#include <xen/queues.h> +#include <xen/xenbus.h> void machine_restart(char * __unused) { diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/x86_64/kernel/entry.S --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/entry.S Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/entry.S Thu Aug 4 22:18:07 2005 @@ -46,7 +46,7 @@ #include <asm/thread_info.h> #include <asm/hw_irq.h> #include <asm/errno.h> -#include <asm-xen/xen-public/arch-x86_64.h> +#include <xen/arch-x86_64.h> #include "irq_vectors.h" diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/x86_64/kernel/io_apic.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/io_apic.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/io_apic.c Thu Aug 4 22:18:07 2005 @@ -80,8 +80,8 @@ #ifdef CONFIG_XEN -#include <asm-xen/xen-public/xen.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/xen.h> +#include <xen/physdev.h> /* Fake i8259 */ #define make_8259A_irq(_irq) (io_apic_irqs &= ~(1UL<<(_irq))) diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/x86_64/kernel/ioport.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/ioport.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/ioport.c Thu Aug 4 22:18:07 2005 @@ -16,7 +16,7 @@ #include <linux/stddef.h> #include <linux/slab.h> #include <linux/thread_info.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/physdev.h> /* * sys_iopl has to be used when you want to access the IO ports diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/x86_64/kernel/pci-dma.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/pci-dma.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/pci-dma.c Thu Aug 4 22:18:07 2005 @@ -8,7 +8,7 @@ #include <linux/pci.h> #include <linux/module.h> #include <asm/io.h> -#include <asm-xen/balloon.h> +#include <xen/balloon.h> /* Map a set of buffers described by scatterlist in streaming * mode for DMA. This is the scatter-gather version of the diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/x86_64/kernel/process.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/process.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/process.c Thu Aug 4 22:18:07 2005 @@ -49,8 +49,8 @@ #include <asm/pda.h> #include <asm/prctl.h> #include <asm/kdebug.h> -#include <asm-xen/xen-public/dom0_ops.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/dom0_ops.h> +#include <xen/physdev.h> #include <asm/desc.h> #include <asm/proto.h> #include <asm/hardirq.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c Thu Aug 4 22:18:07 2005 @@ -58,9 +58,9 @@ #include <asm/setup.h> #include <asm/mach_apic.h> #include <asm/numa.h> -#include <asm-xen/xen-public/physdev.h> +#include <xen/physdev.h> #include "setup_arch_pre.h" -#include <asm-xen/hypervisor.h> +#include <xen/hypervisor.h> #define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) #define PFN_PHYS(x) ((x) << PAGE_SHIFT) diff -r 61cbf8f977ef linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c Thu Aug 4 22:18:07 2005 @@ -31,7 +31,7 @@ #include <asm/mman.h> #include <asm/numa.h> -#include <asm-xen/hypervisor.h> +#include <xen/hypervisor.h> char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c --- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Thu Aug 4 22:18:07 2005 @@ -41,16 +41,16 @@ #include <linux/bootmem.h> #include <linux/highmem.h> #include <linux/vmalloc.h> -#include <asm-xen/xen_proc.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/balloon.h> +#include <xen/xen_proc.h> +#include <xen/hypervisor.h> +#include <xen/balloon.h> #include <asm/pgalloc.h> #include <asm/pgtable.h> #include <asm/uaccess.h> #include <asm/tlb.h> #include <linux/list.h> -#include<asm-xen/xenbus.h> +#include<xen/xenbus.h> #define PAGES2KB(_p) ((_p)<<(PAGE_SHIFT-10)) diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c --- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c Thu Aug 4 22:18:07 2005 @@ -13,7 +13,7 @@ #include "common.h" #ifdef CONFIG_XEN_BLKDEV_GRANT -#include <asm-xen/xen-public/grant_table.h> +#include <xen/grant_table.h> #endif /* diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/blkback/common.h --- a/linux-2.6-xen-sparse/drivers/xen/blkback/common.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkback/common.h Thu Aug 4 22:18:07 2005 @@ -12,11 +12,11 @@ #include <asm/io.h> #include <asm/setup.h> #include <asm/pgalloc.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/evtchn.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/xen-public/io/blkif.h> -#include <asm-xen/xen-public/io/ring.h> +#include <xen/ctrl_if.h> +#include <xen/evtchn.h> +#include <xen/hypervisor.h> +#include <xen/io/blkif.h> +#include <xen/io/ring.h> #if 0 #define ASSERT(_p) \ diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Thu Aug 4 22:18:07 2005 @@ -53,11 +53,11 @@ #include <linux/sched.h> #include <linux/interrupt.h> #include <scsi/scsi.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/evtchn.h> +#include <xen/ctrl_if.h> +#include <xen/evtchn.h> #ifdef CONFIG_XEN_BLKDEV_GRANT -#include <asm-xen/xen-public/grant_table.h> -#include <asm-xen/gnttab.h> +#include <xen/grant_table.h> +#include <xen/gnttab.h> #endif typedef unsigned char byte; /* from linux/ide.h */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/blkfront/block.h --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/block.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/block.h Thu Aug 4 22:18:07 2005 @@ -44,9 +44,9 @@ #include <linux/blkdev.h> #include <linux/major.h> #include <linux/devfs_fs_kernel.h> -#include <asm-xen/xen-public/xen.h> -#include <asm-xen/xen-public/io/blkif.h> -#include <asm-xen/xen-public/io/ring.h> +#include <xen/xen.h> +#include <xen/io/blkif.h> +#include <xen/io/ring.h> #include <asm/io.h> #include <asm/atomic.h> #include <asm/uaccess.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/blktap/blktap.h --- a/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.h Thu Aug 4 22:18:07 2005 @@ -15,15 +15,15 @@ #include <linux/config.h> #include <linux/sched.h> #include <linux/interrupt.h> -#include <asm-xen/ctrl_if.h> +#include <xen/ctrl_if.h> #include <linux/slab.h> #include <linux/blkdev.h> #include <asm/io.h> #include <asm/setup.h> #include <asm/pgalloc.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/xen-public/io/blkif.h> -#include <asm-xen/xen-public/io/ring.h> +#include <xen/hypervisor.h> +#include <xen/io/blkif.h> +#include <xen/io/ring.h> /* Used to signal to the backend that this is a tap domain. */ #define BLKTAP_COOKIE 0xbeadfeed diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/blktap/blktap_datapath.c --- a/linux-2.6-xen-sparse/drivers/xen/blktap/blktap_datapath.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blktap/blktap_datapath.c Thu Aug 4 22:18:07 2005 @@ -9,7 +9,7 @@ */ #include "blktap.h" -#include <asm-xen/evtchn.h> +#include <xen/evtchn.h> /*-----[ The data paths ]-------------------------------------------------*/ diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/blktap/blktap_userdev.c --- a/linux-2.6-xen-sparse/drivers/xen/blktap/blktap_userdev.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blktap/blktap_userdev.c Thu Aug 4 22:18:07 2005 @@ -20,7 +20,7 @@ #include <linux/poll.h> #include <asm/pgalloc.h> #include <asm/tlbflush.h> -#include <asm-xen/xen-public/io/blkif.h> /* for control ring. */ +#include <xen/io/blkif.h> /* for control ring. */ #include "blktap.h" diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/console/console.c --- a/linux-2.6-xen-sparse/drivers/xen/console/console.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c Thu Aug 4 22:18:07 2005 @@ -48,10 +48,10 @@ #include <asm/io.h> #include <asm/irq.h> #include <asm/uaccess.h> -#include <asm-xen/xen-public/event_channel.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/evtchn.h> -#include <asm-xen/ctrl_if.h> +#include <xen/event_channel.h> +#include <xen/hypervisor.h> +#include <xen/evtchn.h> +#include <xen/ctrl_if.h> /* * Modes: diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/evtchn/evtchn.c --- a/linux-2.6-xen-sparse/drivers/xen/evtchn/evtchn.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/evtchn/evtchn.c Thu Aug 4 22:18:07 2005 @@ -45,7 +45,7 @@ #include <linux/irq.h> #include <linux/init.h> #define XEN_EVTCHN_MASK_OPS -#include <asm-xen/evtchn.h> +#include <xen/evtchn.h> #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) #include <linux/devfs_fs_kernel.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/netback/common.h --- a/linux-2.6-xen-sparse/drivers/xen/netback/common.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/common.h Thu Aug 4 22:18:07 2005 @@ -14,9 +14,9 @@ #include <linux/in.h> #include <linux/netdevice.h> #include <linux/etherdevice.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/evtchn.h> -#include <asm-xen/xen-public/io/netif.h> +#include <xen/ctrl_if.h> +#include <xen/evtchn.h> +#include <xen/io/netif.h> #include <asm/io.h> #include <asm/pgalloc.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/netback/netback.c --- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Thu Aug 4 22:18:07 2005 @@ -11,15 +11,15 @@ */ #include "common.h" -#include <asm-xen/balloon.h> +#include <xen/balloon.h> #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) #include <linux/delay.h> #endif #if defined(CONFIG_XEN_NETDEV_GRANT_TX) || defined(CONFIG_XEN_NETDEV_GRANT_RX) -#include <asm-xen/xen-public/grant_table.h> -#include <asm-xen/gnttab.h> +#include <xen/grant_table.h> +#include <xen/gnttab.h> #ifdef GRANT_DEBUG static void dump_packet(int tag, u32 addr, unsigned char *p) diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c --- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Thu Aug 4 22:18:07 2005 @@ -47,16 +47,16 @@ #include <net/route.h> #include <asm/io.h> #include <asm/uaccess.h> -#include <asm-xen/evtchn.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/xen-public/io/netif.h> -#include <asm-xen/balloon.h> +#include <xen/evtchn.h> +#include <xen/ctrl_if.h> +#include <xen/io/netif.h> +#include <xen/balloon.h> #include <asm/page.h> #include <asm/uaccess.h> #if defined(CONFIG_XEN_NETDEV_GRANT_TX) || defined(CONFIG_XEN_NETDEV_GRANT_RX) -#include <asm-xen/xen-public/grant_table.h> -#include <asm-xen/gnttab.h> +#include <xen/grant_table.h> +#include <xen/gnttab.h> #ifdef GRANT_DEBUG static void dump_packet(int tag, u32 addr, u32 ap) diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c --- a/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c Thu Aug 4 22:18:07 2005 @@ -25,9 +25,9 @@ #include <asm/pgtable.h> #include <asm/uaccess.h> #include <asm/tlb.h> -#include <asm-xen/linux-public/privcmd.h> -#include <asm-xen/xen-public/dom0_ops.h> -#include <asm-xen/xen_proc.h> +#include <linux/xen/privcmd.h> +#include <xen/dom0_ops.h> +#include <xen/xen_proc.h> #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) #define pud_t pgd_t diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/usbback/common.h --- a/linux-2.6-xen-sparse/drivers/xen/usbback/common.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/usbback/common.h Thu Aug 4 22:18:07 2005 @@ -12,10 +12,10 @@ #include <asm/io.h> #include <asm/setup.h> #include <asm/pgalloc.h> -#include <asm-xen/ctrl_if.h> -#include <asm-xen/hypervisor.h> +#include <xen/ctrl_if.h> +#include <xen/hypervisor.h> -#include <asm-xen/xen-public/io/usbif.h> +#include <xen/io/usbif.h> #if 0 #define ASSERT(_p) \ diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c --- a/linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c Thu Aug 4 22:18:07 2005 @@ -69,7 +69,7 @@ #include "../../../../../drivers/usb/hcd.h" -#include <asm-xen/xen-public/io/usbif.h> +#include <xen/io/usbif.h> #include <asm/ctrl_if.h> #include <asm/xen-public/io/domain_controller.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/usbfront/xhci.h --- a/linux-2.6-xen-sparse/drivers/xen/usbfront/xhci.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/usbfront/xhci.h Thu Aug 4 22:18:07 2005 @@ -15,7 +15,7 @@ #include <linux/list.h> #include <linux/usb.h> -#include <asm-xen/xen-public/io/usbif.h> +#include <xen/io/usbif.h> #include <linux/spinlock.h> /* xhci_port_t - current known state of a virtual hub ports */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c Thu Aug 4 22:18:07 2005 @@ -27,8 +27,8 @@ * IN THE SOFTWARE. */ -#include <asm-xen/hypervisor.h> -#include <asm-xen/evtchn.h> +#include <xen/hypervisor.h> +#include <xen/evtchn.h> #include <linux/wait.h> #include <linux/interrupt.h> #include <linux/sched.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Thu Aug 4 22:18:07 2005 @@ -27,9 +27,9 @@ */ #define DEBUG -#include <asm-xen/hypervisor.h> -#include <asm-xen/xenbus.h> -#include <asm-xen/balloon.h> +#include <xen/hypervisor.h> +#include <xen/xenbus.h> +#include <xen/balloon.h> #include <linux/kernel.h> #include <linux/err.h> #include <linux/string.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c Thu Aug 4 22:18:07 2005 @@ -38,7 +38,7 @@ #include <linux/slab.h> #include <linux/fcntl.h> #include <linux/kthread.h> -#include <asm-xen/xenbus.h> +#include <xen/xenbus.h> #include "xenbus_comms.h" #define streq(a, b) (strcmp((a), (b)) == 0) diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-i386/fixmap.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/fixmap.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/fixmap.h Thu Aug 4 22:18:07 2005 @@ -27,7 +27,7 @@ #include <asm/acpi.h> #include <asm/apicdef.h> #include <asm/page.h> -#include <asm-xen/gnttab.h> +#include <xen/gnttab.h> #ifdef CONFIG_HIGHMEM #include <linux/threads.h> #include <asm/kmap_types.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h Thu Aug 4 22:18:07 2005 @@ -29,7 +29,7 @@ #ifndef __HYPERCALL_H__ #define __HYPERCALL_H__ -#include <asm-xen/xen-public/xen.h> +#include <xen/xen.h> /* * Assembler stubs for hyper-calls. diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h Thu Aug 4 22:18:07 2005 @@ -17,8 +17,8 @@ #include <linux/types.h> #include <linux/kernel.h> #include <asm/bug.h> -#include <asm-xen/xen-public/xen.h> -#include <asm-xen/foreign_page.h> +#include <xen/xen.h> +#include <xen/foreign_page.h> #define arch_free_page(_page,_order) \ ({ int foreign = PageForeign(_page); \ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h Thu Aug 4 22:18:07 2005 @@ -2,7 +2,7 @@ #define _I386_PGTABLE_H #include <linux/config.h> -#include <asm-xen/hypervisor.h> +#include <xen/hypervisor.h> /* * The Linux memory management assumes a three-level page table setup. On diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-i386/system.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/system.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/system.h Thu Aug 4 22:18:07 2005 @@ -4,10 +4,10 @@ #include <linux/config.h> #include <linux/kernel.h> #include <linux/bitops.h> -#include <asm-xen/synch_bitops.h> +#include <xen/synch_bitops.h> #include <asm/segment.h> #include <asm/cpufeature.h> -#include <asm-xen/hypervisor.h> +#include <xen/hypervisor.h> #include <asm/smp_alt.h> #ifdef __KERNEL__ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/fixmap.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/fixmap.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/fixmap.h Thu Aug 4 22:18:07 2005 @@ -14,7 +14,7 @@ #include <linux/config.h> #include <linux/kernel.h> #include <asm/apicdef.h> -#include <asm-xen/gnttab.h> +#include <xen/gnttab.h> #include <asm/page.h> #include <asm/vsyscall.h> #include <asm/vsyscall32.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h Thu Aug 4 22:18:07 2005 @@ -35,7 +35,7 @@ #ifndef __HYPERCALL_H__ #define __HYPERCALL_H__ -#include <asm-xen/xen-public/xen.h> +#include <xen/xen.h> #define __syscall_clobber "r11","rcx","memory" diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/page.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/page.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/page.h Thu Aug 4 22:18:07 2005 @@ -6,8 +6,8 @@ #ifndef __ASSEMBLY__ #include <linux/types.h> #endif -#include <asm-xen/xen-public/xen.h> -#include <asm-xen/foreign_page.h> +#include <xen/xen.h> +#include <xen/foreign_page.h> #define arch_free_page(_page,_order) \ ({ int foreign = PageForeign(_page); \ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h Thu Aug 4 22:18:07 2005 @@ -16,7 +16,7 @@ #include <asm/bitops.h> #include <linux/threads.h> #include <asm/pda.h> -#include <asm-xen/hypervisor.h> +#include <xen/hypervisor.h> extern pud_t level3_user_pgt[512]; extern pud_t init_level4_pgt[]; extern pud_t init_level4_user_pgt[]; diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/system.h --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/system.h Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/system.h Thu Aug 4 22:18:07 2005 @@ -4,9 +4,9 @@ #include <linux/config.h> #include <linux/kernel.h> #include <asm/segment.h> -#include <asm-xen/synch_bitops.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/xen-public/arch-x86_64.h> +#include <xen/synch_bitops.h> +#include <xen/hypervisor.h> +#include <xen/arch-x86_64.h> #ifdef __KERNEL__ diff -r 61cbf8f977ef linux-2.6-xen-sparse/mkbuildtree --- a/linux-2.6-xen-sparse/mkbuildtree Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/mkbuildtree Thu Aug 4 22:18:07 2005 @@ -104,8 +104,6 @@ # Create links to the shared definitions of the Xen interfaces. -rm -rf ${AD}/include/asm-xen/xen-public -mkdir ${AD}/include/asm-xen/xen-public -cd ${AD}/include/asm-xen/xen-public -relative_lndir ../../../${RS}/../xen/include/public +cd ${AD}/include/xen +relative_lndir ../../${RS}/../xen/include/public diff -r 61cbf8f977ef tools/blktap/Makefile --- a/tools/blktap/Makefile Thu Aug 4 18:51:55 2005 +++ b/tools/blktap/Makefile Thu Aug 4 22:18:07 2005 @@ -52,7 +52,7 @@ ( cd xen/io >/dev/null ; \ ln -sf ../../$(XEN_ROOT)/xen/include/public/io/*.h . ) ( cd xen/linux >/dev/null ; \ - ln -sf ../../$(LINUX_ROOT)/include/asm-xen/linux-public/*.h . ) + ln -sf ../../$(LINUX_ROOT)/include/linux/xen/*.h . ) install: all $(INSTALL_DIR) -p $(DESTDIR)/usr/$(LIBDIR) diff -r 61cbf8f977ef tools/libxc/Makefile --- a/tools/libxc/Makefile Thu Aug 4 18:51:55 2005 +++ b/tools/libxc/Makefile Thu Aug 4 22:18:07 2005 @@ -72,7 +72,7 @@ ( cd xen/io >/dev/null ; \ ln -sf ../../$(XEN_ROOT)/xen/include/public/io/*.h . ) ( cd xen/linux >/dev/null ; \ - ln -sf ../../$(LINUX_ROOT)/include/asm-xen/linux-public/*.h . ) + ln -sf ../../$(LINUX_ROOT)/include/linux/xen/*.h . ) install: build [ -d $(DESTDIR)/usr/$(LIBDIR) ] || $(INSTALL_DIR) $(DESTDIR)/usr/$(LIBDIR) diff -r 61cbf8f977ef tools/security/Makefile --- a/tools/security/Makefile Thu Aug 4 18:51:55 2005 +++ b/tools/security/Makefile Thu Aug 4 22:18:07 2005 @@ -33,4 +33,4 @@ ( cd xen/io >/dev/null ; \ ln -sf ../../$(XEN_ROOT)/xen/include/public/io/*.h . ) ( cd xen/linux >/dev/null ; \ - ln -sf ../../$(LINUX_ROOT)/include/asm-xen/linux-public/*.h . ) + ln -sf ../../$(LINUX_ROOT)/include/linux/xen/*.h . ) diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/linux/xen/privcmd.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/linux/xen/privcmd.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,90 @@ +/****************************************************************************** + * privcmd.h + * + * Interface to /proc/xen/privcmd. + * + * Copyright (c) 2003-2004, K A Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __PRIVCMD_H__ +#define __PRIVCMD_H__ + +typedef struct privcmd_hypercall +{ + unsigned long op; + unsigned long arg[5]; +} privcmd_hypercall_t; + +typedef struct privcmd_mmap_entry { + unsigned long va; + unsigned long mfn; + unsigned long npages; +} privcmd_mmap_entry_t; + +typedef struct privcmd_mmap { + int num; + domid_t dom; /* target domain */ + privcmd_mmap_entry_t *entry; +} privcmd_mmap_t; + +typedef struct privcmd_mmapbatch { + int num; /* number of pages to populate */ + domid_t dom; /* target domain */ + unsigned long addr; /* virtual address */ + unsigned long *arr; /* array of mfns - top nibble set on err */ +} privcmd_mmapbatch_t; + +typedef struct privcmd_blkmsg +{ + unsigned long op; + void *buf; + int buf_size; +} privcmd_blkmsg_t; + +/* + * @cmd: IOCTL_PRIVCMD_HYPERCALL + * @arg: &privcmd_hypercall_t + * Return: Value returned from execution of the specified hypercall. + */ +#define IOCTL_PRIVCMD_HYPERCALL \ + _IOC(_IOC_NONE, 'P', 0, sizeof(privcmd_hypercall_t)) + +/* + * @cmd: IOCTL_PRIVCMD_INITDOMAIN_EVTCHN + * @arg: n/a + * Return: Port associated with domain-controller end of control event channel + * for the initial domain. + */ +#define IOCTL_PRIVCMD_INITDOMAIN_EVTCHN \ + _IOC(_IOC_NONE, 'P', 1, 0) +#define IOCTL_PRIVCMD_MMAP \ + _IOC(_IOC_NONE, 'P', 2, sizeof(privcmd_mmap_t)) +#define IOCTL_PRIVCMD_MMAPBATCH \ + _IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t)) +#define IOCTL_PRIVCMD_GET_MACH2PHYS_START_MFN \ + _IOC(_IOC_READ, 'P', 4, sizeof(unsigned long)) +#define IOCTL_PRIVCMD_INITDOMAIN_STORE \ + _IOC(_IOC_READ, 'P', 5, 0) + +#endif /* __PRIVCMD_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/linux/xen/suspend.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/linux/xen/suspend.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,43 @@ +/****************************************************************************** + * suspend.h + * + * Copyright (c) 2003-2004, K A Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __ASM_XEN_SUSPEND_H__ +#define __ASM_XEN_SUSPEND_H__ + +typedef struct suspend_record_st { + /* To be filled in before resume. */ + start_info_t resume_info; + /* + * The number of a machine frame containing, in sequence, the number of + * each machine frame that contains PFN -> MFN translation table data. + */ + unsigned long pfn_to_mfn_frame_list; + /* Number of entries in the PFN -> MFN translation table. */ + unsigned long nr_pfns; +} suspend_record_t; + +#endif /* __ASM_XEN_SUSPEND_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/balloon.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/balloon.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,54 @@ +/****************************************************************************** + * balloon.h + * + * Xen balloon driver - enables returning/claiming memory to/from Xen. + * + * Copyright (c) 2003, B Dragovic + * Copyright (c) 2003-2004, M Williamson, K Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __ASM_BALLOON_H__ +#define __ASM_BALLOON_H__ + +/* + * Inform the balloon driver that it should allow some slop for device-driver + * memory activities. + */ +extern void balloon_update_driver_allowance(long delta); + +/* Give up unmapped pages to the balloon driver. */ +extern void balloon_put_pages(unsigned long *mfn_list, unsigned long nr_mfns); + +/* + * Prevent the balloon driver from changing the memory reservation during + * a driver critical region. + */ +extern spinlock_t balloon_lock; +#define balloon_lock(__flags) spin_lock_irqsave(&balloon_lock, __flags) +#define balloon_unlock(__flags) spin_unlock_irqrestore(&balloon_lock, __flags) + +/* Init Function - Try to set up our watcher, if not already set. */ +void balloon_init_watcher(void); + +#endif /* __ASM_BALLOON_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/ctrl_if.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/ctrl_if.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,160 @@ +/****************************************************************************** + * ctrl_if.h + * + * Management functions for special interface to the domain controller. + * + * Copyright (c) 2004, K A Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __ASM_XEN__CTRL_IF_H__ +#define __ASM_XEN__CTRL_IF_H__ + +#include <xen/hypervisor.h> +#include <xen/queues.h> + +typedef control_msg_t ctrl_msg_t; + +/* + * Callback function type. Called for asynchronous processing of received + * request messages, and responses to previously-transmitted request messages. + * The parameters are (@msg, @id). + * @msg: Original request/response message (not a copy). The message can be + * modified in-place by the handler (e.g., a response callback can + * turn a request message into a response message in place). The message + * is no longer accessible after the callback handler returns -- if the + * message is required to persist for longer then it must be copied. + * @id: (Response callbacks only) The 'id' that was specified when the + * original request message was queued for transmission. + */ +typedef void (*ctrl_msg_handler_t)(ctrl_msg_t *, unsigned long); + +/* + * Send @msg to the domain controller. Execute @hnd when a response is + * received, passing the response message and the specified @id. This + * operation will not block: it will return -EAGAIN if there is no space. + * Notes: + * 1. The @msg is copied if it is transmitted and so can be freed after this + * function returns. + * 2. If @hnd is NULL then no callback is executed. + */ +int +ctrl_if_send_message_noblock( + ctrl_msg_t *msg, + ctrl_msg_handler_t hnd, + unsigned long id); + +/* + * Send @msg to the domain controller. Execute @hnd when a response is + * received, passing the response message and the specified @id. This + * operation will block until the message is sent, or a signal is received + * for the calling process (unless @wait_state is TASK_UNINTERRUPTIBLE). + * Notes: + * 1. The @msg is copied if it is transmitted and so can be freed after this + * function returns. + * 2. If @hnd is NULL then no callback is executed. + */ +int +ctrl_if_send_message_block( + ctrl_msg_t *msg, + ctrl_msg_handler_t hnd, + unsigned long id, + long wait_state); + +/* + * Send @msg to the domain controller. Block until the response is received, + * and then copy it into the provided buffer, @rmsg. + */ +int +ctrl_if_send_message_and_get_response( + ctrl_msg_t *msg, + ctrl_msg_t *rmsg, + long wait_state); + +/* + * Request a callback when there is /possibly/ space to immediately send a + * message to the domain controller. This function returns 0 if there is + * already space to trasnmit a message --- in this case the callback task /may/ + * still be executed. If this function returns 1 then the callback /will/ be + * executed when space becomes available. + */ +int +ctrl_if_enqueue_space_callback( + struct tq_struct *task); + +/* + * Send a response (@msg) to a message from the domain controller. This will + * never block. + * Notes: + * 1. The @msg is copied and so can be freed after this function returns. + * 2. The @msg may be the original request message, modified in-place. + */ +void +ctrl_if_send_response( + ctrl_msg_t *msg); + +/* + * Register a receiver for typed messages from the domain controller. The + * handler (@hnd) is called for every received message of specified @type. + * Returns TRUE (non-zero) if the handler was successfully registered. + * If CALLBACK_IN_BLOCKING CONTEXT is specified in @flags then callbacks will + * occur in a context in which it is safe to yield (i.e., process context). + */ +#define CALLBACK_IN_BLOCKING_CONTEXT 1 +int ctrl_if_register_receiver( + u8 type, + ctrl_msg_handler_t hnd, + unsigned int flags); + +/* + * Unregister a receiver for typed messages from the domain controller. The + * handler (@hnd) will not be executed after this function returns. + */ +void +ctrl_if_unregister_receiver( + u8 type, ctrl_msg_handler_t hnd); + +/* Suspend/resume notifications. */ +void ctrl_if_suspend(void); +void ctrl_if_resume(void); + +/* Start-of-day setup. */ +void ctrl_if_init(void); + +/* + * Returns TRUE if there are no outstanding message requests at the domain + * controller. This can be used to ensure that messages have really flushed + * through when it is not possible to use the response-callback interface. + * WARNING: If other subsystems are using the control interface then this + * function might never return TRUE! + */ +int ctrl_if_transmitter_empty(void); /* !! DANGEROUS FUNCTION !! */ + +/* + * Manually discard response messages from the domain controller. + * WARNING: This is usually done automatically -- this function should only + * be called when normal interrupt mechanisms are disabled! + */ +void ctrl_if_discard_responses(void); /* !! DANGEROUS FUNCTION !! */ + +#endif /* __ASM_XEN__CONTROL_IF_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/evtchn.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/evtchn.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,135 @@ +/****************************************************************************** + * evtchn.h + * + * Communication via Xen event channels. + * Also definitions for the device that demuxes notifications to userspace. + * + * Copyright (c) 2004, K A Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __ASM_EVTCHN_H__ +#define __ASM_EVTCHN_H__ + +#include <linux/config.h> +#include <linux/interrupt.h> +#include <xen/hypervisor.h> +#include <asm/ptrace.h> +#include <xen/synch_bitops.h> +#include <xen/event_channel.h> +#include <linux/smp.h> + +/* + * LOW-LEVEL DEFINITIONS + */ + +/* Dynamically bind a VIRQ source to Linux IRQ space. */ +extern int bind_virq_to_irq(int virq); +extern void unbind_virq_from_irq(int virq); + +/* Dynamically bind an IPI source to Linux IRQ space. */ +extern int bind_ipi_to_irq(int ipi); +extern void unbind_ipi_from_irq(int ipi); + +/* Dynamically bind an event-channel port to Linux IRQ space. */ +extern int bind_evtchn_to_irq(unsigned int evtchn); +extern void unbind_evtchn_from_irq(unsigned int evtchn); + +/* + * Dynamically bind an event-channel port to an IRQ-like callback handler. + * On some platforms this may not be implemented via the Linux IRQ subsystem. + * You *cannot* trust the irq argument passed to the callback handler. + */ +extern int bind_evtchn_to_irqhandler( + unsigned int evtchn, + irqreturn_t (*handler)(int, void *, struct pt_regs *), + unsigned long irqflags, + const char *devname, + void *dev_id); +extern void unbind_evtchn_from_irqhandler(unsigned int evtchn, void *dev_id); + +extern void irq_suspend(void); +extern void irq_resume(void); + +/* Entry point for notifications into Linux subsystems. */ +asmlinkage void evtchn_do_upcall(struct pt_regs *regs); + +/* Entry point for notifications into the userland character device. */ +void evtchn_device_upcall(int port); + +static inline void mask_evtchn(int port) +{ + shared_info_t *s = HYPERVISOR_shared_info; + synch_set_bit(port, &s->evtchn_mask[0]); +} + +static inline void unmask_evtchn(int port) +{ + shared_info_t *s = HYPERVISOR_shared_info; + vcpu_info_t *vcpu_info = &s->vcpu_data[smp_processor_id()]; + + synch_clear_bit(port, &s->evtchn_mask[0]); + + /* + * The following is basically the equivalent of 'hw_resend_irq'. Just like + * a real IO-APIC we 'lose the interrupt edge' if the channel is masked. + */ + if ( synch_test_bit (port, &s->evtchn_pending[0]) && + !synch_test_and_set_bit(port>>5, &vcpu_info->evtchn_pending_sel) ) + { + vcpu_info->evtchn_upcall_pending = 1; + if ( !vcpu_info->evtchn_upcall_mask ) + force_evtchn_callback(); + } +} + +static inline void clear_evtchn(int port) +{ + shared_info_t *s = HYPERVISOR_shared_info; + synch_clear_bit(port, &s->evtchn_pending[0]); +} + +static inline int notify_via_evtchn(int port) +{ + evtchn_op_t op; + op.cmd = EVTCHNOP_send; + op.u.send.local_port = port; + return HYPERVISOR_event_channel_op(&op); +} + +/* + * CHARACTER-DEVICE DEFINITIONS + */ + +/* /dev/xen/evtchn resides at device number major=10, minor=201 */ +#define EVTCHN_MINOR 201 + +/* /dev/xen/evtchn ioctls: */ +/* EVTCHN_RESET: Clear and reinit the event buffer. Clear error condition. */ +#define EVTCHN_RESET _IO('E', 1) +/* EVTCHN_BIND: Bind to teh specified event-channel port. */ +#define EVTCHN_BIND _IO('E', 2) +/* EVTCHN_UNBIND: Unbind from the specified event-channel port. */ +#define EVTCHN_UNBIND _IO('E', 3) + +#endif /* __ASM_EVTCHN_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/foreign_page.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/foreign_page.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,30 @@ +/****************************************************************************** + * foreign_page.h + * + * Provide a "foreign" page type, that is owned by a foreign allocator and + * not the normal buddy allocator in page_alloc.c + * + * Copyright (c) 2004, K A Fraser + */ + +#ifndef __ASM_XEN_FOREIGN_PAGE_H__ +#define __ASM_XEN_FOREIGN_PAGE_H__ + +#define PG_foreign PG_arch_1 + +#define PageForeign(page) test_bit(PG_foreign, &(page)->flags) + +#define SetPageForeign(page, dtor) do { \ + set_bit(PG_foreign, &(page)->flags); \ + (page)->mapping = (void *)dtor; \ +} while (0) + +#define ClearPageForeign(page) do { \ + clear_bit(PG_foreign, &(page)->flags); \ + (page)->mapping = NULL; \ +} while (0) + +#define PageForeignDestructor(page) \ + ( (void (*) (struct page *)) (page)->mapping ) + +#endif /* __ASM_XEN_FOREIGN_PAGE_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/gnttab.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/gnttab.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,72 @@ +/****************************************************************************** + * gnttab.h + * + * Two sets of functionality: + * 1. Granting foreign access to our memory reservation. + * 2. Accessing others' memory reservations via grant references. + * (i.e., mechanisms for both sender and recipient of grant references) + * + * Copyright (c) 2004, K A Fraser + * Copyright (c) 2005, Christopher Clark + */ + +#ifndef __ASM_GNTTAB_H__ +#define __ASM_GNTTAB_H__ + +#include <linux/config.h> +#include <xen/hypervisor.h> +#include <xen/grant_table.h> + +/* NR_GRANT_FRAMES must be less than or equal to that configured in Xen */ +#define NR_GRANT_FRAMES 4 +#define NR_GRANT_ENTRIES (NR_GRANT_FRAMES * PAGE_SIZE / sizeof(grant_entry_t)) + +int +gnttab_grant_foreign_access( + domid_t domid, unsigned long frame, int readonly); + +void +gnttab_end_foreign_access( + grant_ref_t ref, int readonly); + +int +gnttab_grant_foreign_transfer( + domid_t domid, unsigned long pfn); + +unsigned long +gnttab_end_foreign_transfer( + grant_ref_t ref); + +int +gnttab_query_foreign_access( + grant_ref_t ref ); + +/* + * operations on reserved batches of grant references + */ +int +gnttab_alloc_grant_references( + u16 count, grant_ref_t *pprivate_head, grant_ref_t *private_terminal ); + +void +gnttab_free_grant_references( + u16 count, grant_ref_t private_head ); + +int +gnttab_claim_grant_reference( grant_ref_t *pprivate_head, grant_ref_t terminal +); + +void +gnttab_release_grant_reference( + grant_ref_t *private_head, grant_ref_t release ); + +void +gnttab_grant_foreign_access_ref( + grant_ref_t ref, domid_t domid, unsigned long frame, int readonly); + +void +gnttab_grant_foreign_transfer_ref( + grant_ref_t, domid_t domid, unsigned long pfn); + + +#endif /* __ASM_GNTTAB_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/hypervisor.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/hypervisor.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,199 @@ +/****************************************************************************** + * hypervisor.h + * + * Linux-specific hypervisor handling. + * + * Copyright (c) 2002-2004, K A Fraser + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef __HYPERVISOR_H__ +#define __HYPERVISOR_H__ + +#include <linux/config.h> +#include <linux/types.h> +#include <linux/kernel.h> +#include <linux/version.h> +#include <xen/xen.h> +#include <xen/dom0_ops.h> +#include <xen/io/domain_controller.h> +#include <asm/ptrace.h> +#include <asm/page.h> +#if defined(__i386__) +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +# ifdef CONFIG_X86_PAE +# include <asm-generic/pgtable-nopud.h> +# else +# include <asm-generic/pgtable-nopmd.h> +# endif +# else +# define pud_t pgd_t +# endif +#endif + +/* arch/xen/i386/kernel/setup.c */ +union xen_start_info_union +{ + start_info_t xen_start_info; + char padding[2048]; +}; +extern union xen_start_info_union xen_start_info_union; +#define xen_start_info (xen_start_info_union.xen_start_info) + +/* arch/xen/kernel/evtchn.c */ +/* Force a proper event-channel callback from Xen. */ +void force_evtchn_callback(void); + +/* arch/xen/kernel/process.c */ +void xen_cpu_idle (void); + +/* arch/xen/i386/kernel/hypervisor.c */ +void do_hypervisor_callback(struct pt_regs *regs); + +/* arch/xen/i386/kernel/head.S */ +void lgdt_finish(void); + +/* arch/xen/i386/mm/hypervisor.c */ +/* + * NB. ptr values should be PHYSICAL, not MACHINE. 'vals' should be already + * be MACHINE addresses. + */ + +void xen_pt_switch(unsigned long ptr); +void xen_new_user_pt(unsigned long ptr); /* x86_64 only */ +void xen_load_gs(unsigned int selector); /* x86_64 only */ +void xen_tlb_flush(void); +void xen_invlpg(unsigned long ptr); + +#ifndef CONFIG_XEN_SHADOW_MODE +void xen_l1_entry_update(pte_t *ptr, pte_t val); +void xen_l2_entry_update(pmd_t *ptr, pmd_t val); +void xen_l3_entry_update(pud_t *ptr, pud_t val); /* x86_64/PAE */ +void xen_l4_entry_update(pgd_t *ptr, pgd_t val); /* x86_64 only */ +void xen_pgd_pin(unsigned long ptr); +void xen_pgd_unpin(unsigned long ptr); +void xen_pud_pin(unsigned long ptr); /* x86_64 only */ +void xen_pud_unpin(unsigned long ptr); /* x86_64 only */ +void xen_pmd_pin(unsigned long ptr); /* x86_64 only */ +void xen_pmd_unpin(unsigned long ptr); /* x86_64 only */ +void xen_pte_pin(unsigned long ptr); +void xen_pte_unpin(unsigned long ptr); +#else +#define xen_l1_entry_update(_p, _v) set_pte((_p), (_v)) +#define xen_l2_entry_update(_p, _v) set_pgd((_p), (_v)) +#define xen_pgd_pin(_p) ((void)0) +#define xen_pgd_unpin(_p) ((void)0) +#define xen_pte_pin(_p) ((void)0) +#define xen_pte_unpin(_p) ((void)0) +#endif + +void xen_set_ldt(unsigned long ptr, unsigned long bytes); +void xen_machphys_update(unsigned long mfn, unsigned long pfn); + +#ifdef CONFIG_SMP +#include <linux/cpumask.h> +void xen_tlb_flush_all(void); +void xen_invlpg_all(unsigned long ptr); +void xen_tlb_flush_mask(cpumask_t *mask); +void xen_invlpg_mask(cpumask_t *mask, unsigned long ptr); +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) +/* +** XXX SMH: 2.4 doesn't have percpu.h (or support SMP guests) so just +** include sufficient #defines to allow the below to build. +*/ +#define DEFINE_PER_CPU(type, name) \ + __typeof__(type) per_cpu__##name + +#define per_cpu(var, cpu) (*((void)cpu, &per_cpu__##var)) +#define __get_cpu_var(var) per_cpu__##var +#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name + +#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var) +#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var) +#endif /* linux < 2.6.0 */ + +void xen_contig_memory(unsigned long vstart, unsigned int order); + +#ifdef CONFIG_XEN_PHYSDEV_ACCESS +/* Allocate a contiguous empty region of low memory. Return virtual start. */ +unsigned long allocate_empty_lowmem_region(unsigned long pages); +#endif + +#include <asm/hypercall.h> + +#if defined(CONFIG_X86_64) +#define MULTI_UVMFLAGS_INDEX 2 +#define MULTI_UVMDOMID_INDEX 3 +#else +#define MULTI_UVMFLAGS_INDEX 3 +#define MULTI_UVMDOMID_INDEX 4 +#endif + +static inline void +MULTI_update_va_mapping( + multicall_entry_t *mcl, unsigned long va, + pte_t new_val, unsigned long flags) +{ + mcl->op = __HYPERVISOR_update_va_mapping; + mcl->args[0] = va; +#if defined(CONFIG_X86_64) + mcl->args[1] = new_val.pte; + mcl->args[2] = flags; +#elif defined(CONFIG_X86_PAE) + mcl->args[1] = new_val.pte_low; + mcl->args[2] = new_val.pte_high; + mcl->args[3] = flags; +#else + mcl->args[1] = new_val.pte_low; + mcl->args[2] = 0; + mcl->args[3] = flags; +#endif +} + +static inline void +MULTI_update_va_mapping_otherdomain( + multicall_entry_t *mcl, unsigned long va, + pte_t new_val, unsigned long flags, domid_t domid) +{ + mcl->op = __HYPERVISOR_update_va_mapping_otherdomain; + mcl->args[0] = va; +#if defined(CONFIG_X86_64) + mcl->args[1] = new_val.pte; + mcl->args[2] = flags; + mcl->args[3] = domid; +#elif defined(CONFIG_X86_PAE) + mcl->args[1] = new_val.pte_low; + mcl->args[2] = new_val.pte_high; + mcl->args[3] = flags; + mcl->args[4] = domid; +#else + mcl->args[1] = new_val.pte_low; + mcl->args[2] = 0; + mcl->args[3] = flags; + mcl->args[4] = domid; +#endif +} + +#endif /* __HYPERVISOR_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/queues.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/queues.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,81 @@ + +/* + * Oh dear. Task queues were removed from Linux 2.6 and replaced by work + * queues. Unfortunately the semantics is not the same. With task queues we + * can defer work until a particular event occurs -- this is not + * straightforwardly done with work queues (queued work is performed asap, or + * after some fixed timeout). Conversely, work queues are a (slightly) neater + * way of deferring work to a process context than using task queues in 2.4. + * + * This is a bit of a needless reimplementation -- should have just pulled + * the code from 2.4, but I tried leveraging work queues to simplify things. + * They didn't help. :-( + */ + +#ifndef __QUEUES_H__ +#define __QUEUES_H__ + +#include <linux/version.h> +#include <linux/list.h> +#include <linux/workqueue.h> + +struct tq_struct { + void (*fn)(void *); + void *arg; + struct list_head list; + unsigned long pending; +}; +#define INIT_TQUEUE(_name, _fn, _arg) \ + do { \ + INIT_LIST_HEAD(&(_name)->list); \ + (_name)->pending = 0; \ + (_name)->fn = (_fn); (_name)->arg = (_arg); \ + } while ( 0 ) +#define DECLARE_TQUEUE(_name, _fn, _arg) \ + struct tq_struct _name = { (_fn), (_arg), LIST_HEAD_INIT((_name).list), 0 } + +typedef struct { + struct list_head list; + spinlock_t lock; +} task_queue; +#define DECLARE_TASK_QUEUE(_name) \ + task_queue _name = { LIST_HEAD_INIT((_name).list), SPIN_LOCK_UNLOCKED } + +static inline int queue_task(struct tq_struct *tqe, task_queue *tql) +{ + unsigned long flags; + if ( test_and_set_bit(0, &tqe->pending) ) + return 0; + spin_lock_irqsave(&tql->lock, flags); + list_add_tail(&tqe->list, &tql->list); + spin_unlock_irqrestore(&tql->lock, flags); + return 1; +} + +static inline void run_task_queue(task_queue *tql) +{ + struct list_head head, *ent; + struct tq_struct *tqe; + unsigned long flags; + void (*fn)(void *); + void *arg; + + spin_lock_irqsave(&tql->lock, flags); + list_add(&head, &tql->list); + list_del_init(&tql->list); + spin_unlock_irqrestore(&tql->lock, flags); + + while ( !list_empty(&head) ) + { + ent = head.next; + list_del_init(ent); + tqe = list_entry(ent, struct tq_struct, list); + fn = tqe->fn; + arg = tqe->arg; + wmb(); + tqe->pending = 0; + fn(arg); + } +} + +#endif /* __QUEUES_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/synch_bitops.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/synch_bitops.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,2 @@ + +#include <asm-i386/synch_bitops.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/xen_proc.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/xen_proc.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,13 @@ + +#ifndef __ASM_XEN_PROC_H__ +#define __ASM_XEN_PROC_H__ + +#include <linux/config.h> +#include <linux/proc_fs.h> + +extern struct proc_dir_entry *create_xen_proc_entry( + const char *name, mode_t mode); +extern void remove_xen_proc_entry( + const char *name); + +#endif /* __ASM_XEN_PROC_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/xen/xenbus.h --- /dev/null Thu Aug 4 18:51:55 2005 +++ b/linux-2.6-xen-sparse/include/xen/xenbus.h Thu Aug 4 22:18:07 2005 @@ -0,0 +1,122 @@ +#ifndef _ASM_XEN_XENBUS_H +#define _ASM_XEN_XENBUS_H +/****************************************************************************** + * xenbus.h + * + * Talks to Xen Store to figure out what devices we have. + * + * Copyright (C) 2005 Rusty Russell, IBM Corporation + * + * This file may be distributed separately from the Linux kernel, or + * incorporated into other software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +#include <linux/device.h> +#include <asm/semaphore.h> + +/* A xenbus device. */ +struct xenbus_device { + char *devicetype; + char *subtype; + char *nodename; + struct device dev; + int has_error; + void *data; +}; + +static inline struct xenbus_device *to_xenbus_device(struct device *dev) +{ + return container_of(dev, struct xenbus_device, dev); +} + +struct xenbus_device_id +{ + /* .../device/<device_type>/<identifier> */ + char devicetype[32]; /* General class of device. */ + char subtype[32]; /* Contents of "subtype" for this device */ +}; + +/* A xenbus driver. */ +struct xenbus_driver { + char *name; + struct module *owner; + const struct xenbus_device_id *ids; + int (*probe) (struct xenbus_device * dev, + const struct xenbus_device_id * id); + int (*remove) (struct xenbus_device * dev); + struct device_driver driver; +}; + +static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv) +{ + return container_of(drv, struct xenbus_driver, driver); +} + +int xenbus_register_driver(struct xenbus_driver *drv); +void xenbus_unregister_driver(struct xenbus_driver *drv); + +/* Caller must hold this lock to call these functions: it's also held + * across watch callbacks. */ +extern struct semaphore xenbus_lock; + +char **xenbus_directory(const char *dir, const char *node, unsigned int *num); +void *xenbus_read(const char *dir, const char *node, unsigned int *len); +int xenbus_write(const char *dir, const char *node, + const char *string, int createflags); +int xenbus_mkdir(const char *dir, const char *node); +int xenbus_exists(const char *dir, const char *node); +int xenbus_rm(const char *dir, const char *node); +int xenbus_transaction_start(const char *subtree); +int xenbus_transaction_end(int abort); + +/* Single read and scanf: returns -errno or num scanned if > 0. */ +int xenbus_scanf(const char *dir, const char *node, const char *fmt, ...) + __attribute__((format(scanf, 3, 4))); + +/* Single printf and write: returns -errno or 0. */ +int xenbus_printf(const char *dir, const char *node, const char *fmt, ...) + __attribute__((format(printf, 3, 4))); + +/* Generic read function: NULL-terminated triples of name, + * sprintf-style type string, and pointer. Returns 0 or errno.*/ +int xenbus_gather(const char *dir, ...); + +/* Report a (negative) errno into the store, with explanation. */ +void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt,...); + +/* Clear any error. */ +void xenbus_dev_ok(struct xenbus_device *dev); + +/* Register callback to watch this node. */ +struct xenbus_watch +{ + struct list_head list; + char *node; + void (*callback)(struct xenbus_watch *, const char *node); +}; + +int register_xenbus_watch(struct xenbus_watch *watch); +void unregister_xenbus_watch(struct xenbus_watch *watch); + +/* Called from xen core code. */ +void xenbus_suspend(void); +void xenbus_resume(void); + +#endif /* _ASM_XEN_XENBUS_H */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/balloon.h --- a/linux-2.6-xen-sparse/include/asm-xen/balloon.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,54 +0,0 @@ -/****************************************************************************** - * balloon.h - * - * Xen balloon driver - enables returning/claiming memory to/from Xen. - * - * Copyright (c) 2003, B Dragovic - * Copyright (c) 2003-2004, M Williamson, K Fraser - * - * This file may be distributed separately from the Linux kernel, or - * incorporated into other software packages, subject to the following license: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this source file (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, modify, - * merge, publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __ASM_BALLOON_H__ -#define __ASM_BALLOON_H__ - -/* - * Inform the balloon driver that it should allow some slop for device-driver - * memory activities. - */ -extern void balloon_update_driver_allowance(long delta); - -/* Give up unmapped pages to the balloon driver. */ -extern void balloon_put_pages(unsigned long *mfn_list, unsigned long nr_mfns); - -/* - * Prevent the balloon driver from changing the memory reservation during - * a driver critical region. - */ -extern spinlock_t balloon_lock; -#define balloon_lock(__flags) spin_lock_irqsave(&balloon_lock, __flags) -#define balloon_unlock(__flags) spin_unlock_irqrestore(&balloon_lock, __flags) - -/* Init Function - Try to set up our watcher, if not already set. */ -void balloon_init_watcher(void); - -#endif /* __ASM_BALLOON_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/ctrl_if.h --- a/linux-2.6-xen-sparse/include/asm-xen/ctrl_if.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,160 +0,0 @@ -/****************************************************************************** - * ctrl_if.h - * - * Management functions for special interface to the domain controller. - * - * Copyright (c) 2004, K A Fraser - * - * This file may be distributed separately from the Linux kernel, or - * incorporated into other software packages, subject to the following license: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this source file (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, modify, - * merge, publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __ASM_XEN__CTRL_IF_H__ -#define __ASM_XEN__CTRL_IF_H__ - -#include <asm-xen/hypervisor.h> -#include <asm-xen/queues.h> - -typedef control_msg_t ctrl_msg_t; - -/* - * Callback function type. Called for asynchronous processing of received - * request messages, and responses to previously-transmitted request messages. - * The parameters are (@msg, @id). - * @msg: Original request/response message (not a copy). The message can be - * modified in-place by the handler (e.g., a response callback can - * turn a request message into a response message in place). The message - * is no longer accessible after the callback handler returns -- if the - * message is required to persist for longer then it must be copied. - * @id: (Response callbacks only) The 'id' that was specified when the - * original request message was queued for transmission. - */ -typedef void (*ctrl_msg_handler_t)(ctrl_msg_t *, unsigned long); - -/* - * Send @msg to the domain controller. Execute @hnd when a response is - * received, passing the response message and the specified @id. This - * operation will not block: it will return -EAGAIN if there is no space. - * Notes: - * 1. The @msg is copied if it is transmitted and so can be freed after this - * function returns. - * 2. If @hnd is NULL then no callback is executed. - */ -int -ctrl_if_send_message_noblock( - ctrl_msg_t *msg, - ctrl_msg_handler_t hnd, - unsigned long id); - -/* - * Send @msg to the domain controller. Execute @hnd when a response is - * received, passing the response message and the specified @id. This - * operation will block until the message is sent, or a signal is received - * for the calling process (unless @wait_state is TASK_UNINTERRUPTIBLE). - * Notes: - * 1. The @msg is copied if it is transmitted and so can be freed after this - * function returns. - * 2. If @hnd is NULL then no callback is executed. - */ -int -ctrl_if_send_message_block( - ctrl_msg_t *msg, - ctrl_msg_handler_t hnd, - unsigned long id, - long wait_state); - -/* - * Send @msg to the domain controller. Block until the response is received, - * and then copy it into the provided buffer, @rmsg. - */ -int -ctrl_if_send_message_and_get_response( - ctrl_msg_t *msg, - ctrl_msg_t *rmsg, - long wait_state); - -/* - * Request a callback when there is /possibly/ space to immediately send a - * message to the domain controller. This function returns 0 if there is - * already space to trasnmit a message --- in this case the callback task /may/ - * still be executed. If this function returns 1 then the callback /will/ be - * executed when space becomes available. - */ -int -ctrl_if_enqueue_space_callback( - struct tq_struct *task); - -/* - * Send a response (@msg) to a message from the domain controller. This will - * never block. - * Notes: - * 1. The @msg is copied and so can be freed after this function returns. - * 2. The @msg may be the original request message, modified in-place. - */ -void -ctrl_if_send_response( - ctrl_msg_t *msg); - -/* - * Register a receiver for typed messages from the domain controller. The - * handler (@hnd) is called for every received message of specified @type. - * Returns TRUE (non-zero) if the handler was successfully registered. - * If CALLBACK_IN_BLOCKING CONTEXT is specified in @flags then callbacks will - * occur in a context in which it is safe to yield (i.e., process context). - */ -#define CALLBACK_IN_BLOCKING_CONTEXT 1 -int ctrl_if_register_receiver( - u8 type, - ctrl_msg_handler_t hnd, - unsigned int flags); - -/* - * Unregister a receiver for typed messages from the domain controller. The - * handler (@hnd) will not be executed after this function returns. - */ -void -ctrl_if_unregister_receiver( - u8 type, ctrl_msg_handler_t hnd); - -/* Suspend/resume notifications. */ -void ctrl_if_suspend(void); -void ctrl_if_resume(void); - -/* Start-of-day setup. */ -void ctrl_if_init(void); - -/* - * Returns TRUE if there are no outstanding message requests at the domain - * controller. This can be used to ensure that messages have really flushed - * through when it is not possible to use the response-callback interface. - * WARNING: If other subsystems are using the control interface then this - * function might never return TRUE! - */ -int ctrl_if_transmitter_empty(void); /* !! DANGEROUS FUNCTION !! */ - -/* - * Manually discard response messages from the domain controller. - * WARNING: This is usually done automatically -- this function should only - * be called when normal interrupt mechanisms are disabled! - */ -void ctrl_if_discard_responses(void); /* !! DANGEROUS FUNCTION !! */ - -#endif /* __ASM_XEN__CONTROL_IF_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/evtchn.h --- a/linux-2.6-xen-sparse/include/asm-xen/evtchn.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,135 +0,0 @@ -/****************************************************************************** - * evtchn.h - * - * Communication via Xen event channels. - * Also definitions for the device that demuxes notifications to userspace. - * - * Copyright (c) 2004, K A Fraser - * - * This file may be distributed separately from the Linux kernel, or - * incorporated into other software packages, subject to the following license: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this source file (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, modify, - * merge, publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __ASM_EVTCHN_H__ -#define __ASM_EVTCHN_H__ - -#include <linux/config.h> -#include <linux/interrupt.h> -#include <asm-xen/hypervisor.h> -#include <asm/ptrace.h> -#include <asm-xen/synch_bitops.h> -#include <asm-xen/xen-public/event_channel.h> -#include <linux/smp.h> - -/* - * LOW-LEVEL DEFINITIONS - */ - -/* Dynamically bind a VIRQ source to Linux IRQ space. */ -extern int bind_virq_to_irq(int virq); -extern void unbind_virq_from_irq(int virq); - -/* Dynamically bind an IPI source to Linux IRQ space. */ -extern int bind_ipi_to_irq(int ipi); -extern void unbind_ipi_from_irq(int ipi); - -/* Dynamically bind an event-channel port to Linux IRQ space. */ -extern int bind_evtchn_to_irq(unsigned int evtchn); -extern void unbind_evtchn_from_irq(unsigned int evtchn); - -/* - * Dynamically bind an event-channel port to an IRQ-like callback handler. - * On some platforms this may not be implemented via the Linux IRQ subsystem. - * You *cannot* trust the irq argument passed to the callback handler. - */ -extern int bind_evtchn_to_irqhandler( - unsigned int evtchn, - irqreturn_t (*handler)(int, void *, struct pt_regs *), - unsigned long irqflags, - const char *devname, - void *dev_id); -extern void unbind_evtchn_from_irqhandler(unsigned int evtchn, void *dev_id); - -extern void irq_suspend(void); -extern void irq_resume(void); - -/* Entry point for notifications into Linux subsystems. */ -asmlinkage void evtchn_do_upcall(struct pt_regs *regs); - -/* Entry point for notifications into the userland character device. */ -void evtchn_device_upcall(int port); - -static inline void mask_evtchn(int port) -{ - shared_info_t *s = HYPERVISOR_shared_info; - synch_set_bit(port, &s->evtchn_mask[0]); -} - -static inline void unmask_evtchn(int port) -{ - shared_info_t *s = HYPERVISOR_shared_info; - vcpu_info_t *vcpu_info = &s->vcpu_data[smp_processor_id()]; - - synch_clear_bit(port, &s->evtchn_mask[0]); - - /* - * The following is basically the equivalent of 'hw_resend_irq'. Just like - * a real IO-APIC we 'lose the interrupt edge' if the channel is masked. - */ - if ( synch_test_bit (port, &s->evtchn_pending[0]) && - !synch_test_and_set_bit(port>>5, &vcpu_info->evtchn_pending_sel) ) - { - vcpu_info->evtchn_upcall_pending = 1; - if ( !vcpu_info->evtchn_upcall_mask ) - force_evtchn_callback(); - } -} - -static inline void clear_evtchn(int port) -{ - shared_info_t *s = HYPERVISOR_shared_info; - synch_clear_bit(port, &s->evtchn_pending[0]); -} - -static inline int notify_via_evtchn(int port) -{ - evtchn_op_t op; - op.cmd = EVTCHNOP_send; - op.u.send.local_port = port; - return HYPERVISOR_event_channel_op(&op); -} - -/* - * CHARACTER-DEVICE DEFINITIONS - */ - -/* /dev/xen/evtchn resides at device number major=10, minor=201 */ -#define EVTCHN_MINOR 201 - -/* /dev/xen/evtchn ioctls: */ -/* EVTCHN_RESET: Clear and reinit the event buffer. Clear error condition. */ -#define EVTCHN_RESET _IO('E', 1) -/* EVTCHN_BIND: Bind to teh specified event-channel port. */ -#define EVTCHN_BIND _IO('E', 2) -/* EVTCHN_UNBIND: Unbind from the specified event-channel port. */ -#define EVTCHN_UNBIND _IO('E', 3) - -#endif /* __ASM_EVTCHN_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/foreign_page.h --- a/linux-2.6-xen-sparse/include/asm-xen/foreign_page.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,30 +0,0 @@ -/****************************************************************************** - * foreign_page.h - * - * Provide a "foreign" page type, that is owned by a foreign allocator and - * not the normal buddy allocator in page_alloc.c - * - * Copyright (c) 2004, K A Fraser - */ - -#ifndef __ASM_XEN_FOREIGN_PAGE_H__ -#define __ASM_XEN_FOREIGN_PAGE_H__ - -#define PG_foreign PG_arch_1 - -#define PageForeign(page) test_bit(PG_foreign, &(page)->flags) - -#define SetPageForeign(page, dtor) do { \ - set_bit(PG_foreign, &(page)->flags); \ - (page)->mapping = (void *)dtor; \ -} while (0) - -#define ClearPageForeign(page) do { \ - clear_bit(PG_foreign, &(page)->flags); \ - (page)->mapping = NULL; \ -} while (0) - -#define PageForeignDestructor(page) \ - ( (void (*) (struct page *)) (page)->mapping ) - -#endif /* __ASM_XEN_FOREIGN_PAGE_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/gnttab.h --- a/linux-2.6-xen-sparse/include/asm-xen/gnttab.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,72 +0,0 @@ -/****************************************************************************** - * gnttab.h - * - * Two sets of functionality: - * 1. Granting foreign access to our memory reservation. - * 2. Accessing others' memory reservations via grant references. - * (i.e., mechanisms for both sender and recipient of grant references) - * - * Copyright (c) 2004, K A Fraser - * Copyright (c) 2005, Christopher Clark - */ - -#ifndef __ASM_GNTTAB_H__ -#define __ASM_GNTTAB_H__ - -#include <linux/config.h> -#include <asm-xen/hypervisor.h> -#include <asm-xen/xen-public/grant_table.h> - -/* NR_GRANT_FRAMES must be less than or equal to that configured in Xen */ -#define NR_GRANT_FRAMES 4 -#define NR_GRANT_ENTRIES (NR_GRANT_FRAMES * PAGE_SIZE / sizeof(grant_entry_t)) - -int -gnttab_grant_foreign_access( - domid_t domid, unsigned long frame, int readonly); - -void -gnttab_end_foreign_access( - grant_ref_t ref, int readonly); - -int -gnttab_grant_foreign_transfer( - domid_t domid, unsigned long pfn); - -unsigned long -gnttab_end_foreign_transfer( - grant_ref_t ref); - -int -gnttab_query_foreign_access( - grant_ref_t ref ); - -/* - * operations on reserved batches of grant references - */ -int -gnttab_alloc_grant_references( - u16 count, grant_ref_t *pprivate_head, grant_ref_t *private_terminal ); - -void -gnttab_free_grant_references( - u16 count, grant_ref_t private_head ); - -int -gnttab_claim_grant_reference( grant_ref_t *pprivate_head, grant_ref_t terminal -); - -void -gnttab_release_grant_reference( - grant_ref_t *private_head, grant_ref_t release ); - -void -gnttab_grant_foreign_access_ref( - grant_ref_t ref, domid_t domid, unsigned long frame, int readonly); - -void -gnttab_grant_foreign_transfer_ref( - grant_ref_t, domid_t domid, unsigned long pfn); - - -#endif /* __ASM_GNTTAB_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/hypervisor.h --- a/linux-2.6-xen-sparse/include/asm-xen/hypervisor.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,199 +0,0 @@ -/****************************************************************************** - * hypervisor.h - * - * Linux-specific hypervisor handling. - * - * Copyright (c) 2002-2004, K A Fraser - * - * This file may be distributed separately from the Linux kernel, or - * incorporated into other software packages, subject to the following license: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this source file (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, modify, - * merge, publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __HYPERVISOR_H__ -#define __HYPERVISOR_H__ - -#include <linux/config.h> -#include <linux/types.h> -#include <linux/kernel.h> -#include <linux/version.h> -#include <asm-xen/xen-public/xen.h> -#include <asm-xen/xen-public/dom0_ops.h> -#include <asm-xen/xen-public/io/domain_controller.h> -#include <asm/ptrace.h> -#include <asm/page.h> -#if defined(__i386__) -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) -# ifdef CONFIG_X86_PAE -# include <asm-generic/pgtable-nopud.h> -# else -# include <asm-generic/pgtable-nopmd.h> -# endif -# else -# define pud_t pgd_t -# endif -#endif - -/* arch/xen/i386/kernel/setup.c */ -union xen_start_info_union -{ - start_info_t xen_start_info; - char padding[2048]; -}; -extern union xen_start_info_union xen_start_info_union; -#define xen_start_info (xen_start_info_union.xen_start_info) - -/* arch/xen/kernel/evtchn.c */ -/* Force a proper event-channel callback from Xen. */ -void force_evtchn_callback(void); - -/* arch/xen/kernel/process.c */ -void xen_cpu_idle (void); - -/* arch/xen/i386/kernel/hypervisor.c */ -void do_hypervisor_callback(struct pt_regs *regs); - -/* arch/xen/i386/kernel/head.S */ -void lgdt_finish(void); - -/* arch/xen/i386/mm/hypervisor.c */ -/* - * NB. ptr values should be PHYSICAL, not MACHINE. 'vals' should be already - * be MACHINE addresses. - */ - -void xen_pt_switch(unsigned long ptr); -void xen_new_user_pt(unsigned long ptr); /* x86_64 only */ -void xen_load_gs(unsigned int selector); /* x86_64 only */ -void xen_tlb_flush(void); -void xen_invlpg(unsigned long ptr); - -#ifndef CONFIG_XEN_SHADOW_MODE -void xen_l1_entry_update(pte_t *ptr, pte_t val); -void xen_l2_entry_update(pmd_t *ptr, pmd_t val); -void xen_l3_entry_update(pud_t *ptr, pud_t val); /* x86_64/PAE */ -void xen_l4_entry_update(pgd_t *ptr, pgd_t val); /* x86_64 only */ -void xen_pgd_pin(unsigned long ptr); -void xen_pgd_unpin(unsigned long ptr); -void xen_pud_pin(unsigned long ptr); /* x86_64 only */ -void xen_pud_unpin(unsigned long ptr); /* x86_64 only */ -void xen_pmd_pin(unsigned long ptr); /* x86_64 only */ -void xen_pmd_unpin(unsigned long ptr); /* x86_64 only */ -void xen_pte_pin(unsigned long ptr); -void xen_pte_unpin(unsigned long ptr); -#else -#define xen_l1_entry_update(_p, _v) set_pte((_p), (_v)) -#define xen_l2_entry_update(_p, _v) set_pgd((_p), (_v)) -#define xen_pgd_pin(_p) ((void)0) -#define xen_pgd_unpin(_p) ((void)0) -#define xen_pte_pin(_p) ((void)0) -#define xen_pte_unpin(_p) ((void)0) -#endif - -void xen_set_ldt(unsigned long ptr, unsigned long bytes); -void xen_machphys_update(unsigned long mfn, unsigned long pfn); - -#ifdef CONFIG_SMP -#include <linux/cpumask.h> -void xen_tlb_flush_all(void); -void xen_invlpg_all(unsigned long ptr); -void xen_tlb_flush_mask(cpumask_t *mask); -void xen_invlpg_mask(cpumask_t *mask, unsigned long ptr); -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) -/* -** XXX SMH: 2.4 doesn't have percpu.h (or support SMP guests) so just -** include sufficient #defines to allow the below to build. -*/ -#define DEFINE_PER_CPU(type, name) \ - __typeof__(type) per_cpu__##name - -#define per_cpu(var, cpu) (*((void)cpu, &per_cpu__##var)) -#define __get_cpu_var(var) per_cpu__##var -#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name - -#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var) -#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var) -#endif /* linux < 2.6.0 */ - -void xen_contig_memory(unsigned long vstart, unsigned int order); - -#ifdef CONFIG_XEN_PHYSDEV_ACCESS -/* Allocate a contiguous empty region of low memory. Return virtual start. */ -unsigned long allocate_empty_lowmem_region(unsigned long pages); -#endif - -#include <asm/hypercall.h> - -#if defined(CONFIG_X86_64) -#define MULTI_UVMFLAGS_INDEX 2 -#define MULTI_UVMDOMID_INDEX 3 -#else -#define MULTI_UVMFLAGS_INDEX 3 -#define MULTI_UVMDOMID_INDEX 4 -#endif - -static inline void -MULTI_update_va_mapping( - multicall_entry_t *mcl, unsigned long va, - pte_t new_val, unsigned long flags) -{ - mcl->op = __HYPERVISOR_update_va_mapping; - mcl->args[0] = va; -#if defined(CONFIG_X86_64) - mcl->args[1] = new_val.pte; - mcl->args[2] = flags; -#elif defined(CONFIG_X86_PAE) - mcl->args[1] = new_val.pte_low; - mcl->args[2] = new_val.pte_high; - mcl->args[3] = flags; -#else - mcl->args[1] = new_val.pte_low; - mcl->args[2] = 0; - mcl->args[3] = flags; -#endif -} - -static inline void -MULTI_update_va_mapping_otherdomain( - multicall_entry_t *mcl, unsigned long va, - pte_t new_val, unsigned long flags, domid_t domid) -{ - mcl->op = __HYPERVISOR_update_va_mapping_otherdomain; - mcl->args[0] = va; -#if defined(CONFIG_X86_64) - mcl->args[1] = new_val.pte; - mcl->args[2] = flags; - mcl->args[3] = domid; -#elif defined(CONFIG_X86_PAE) - mcl->args[1] = new_val.pte_low; - mcl->args[2] = new_val.pte_high; - mcl->args[3] = flags; - mcl->args[4] = domid; -#else - mcl->args[1] = new_val.pte_low; - mcl->args[2] = 0; - mcl->args[3] = flags; - mcl->args[4] = domid; -#endif -} - -#endif /* __HYPERVISOR_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/linux-public/privcmd.h --- a/linux-2.6-xen-sparse/include/asm-xen/linux-public/privcmd.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,90 +0,0 @@ -/****************************************************************************** - * privcmd.h - * - * Interface to /proc/xen/privcmd. - * - * Copyright (c) 2003-2004, K A Fraser - * - * This file may be distributed separately from the Linux kernel, or - * incorporated into other software packages, subject to the following license: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this source file (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, modify, - * merge, publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __PRIVCMD_H__ -#define __PRIVCMD_H__ - -typedef struct privcmd_hypercall -{ - unsigned long op; - unsigned long arg[5]; -} privcmd_hypercall_t; - -typedef struct privcmd_mmap_entry { - unsigned long va; - unsigned long mfn; - unsigned long npages; -} privcmd_mmap_entry_t; - -typedef struct privcmd_mmap { - int num; - domid_t dom; /* target domain */ - privcmd_mmap_entry_t *entry; -} privcmd_mmap_t; - -typedef struct privcmd_mmapbatch { - int num; /* number of pages to populate */ - domid_t dom; /* target domain */ - unsigned long addr; /* virtual address */ - unsigned long *arr; /* array of mfns - top nibble set on err */ -} privcmd_mmapbatch_t; - -typedef struct privcmd_blkmsg -{ - unsigned long op; - void *buf; - int buf_size; -} privcmd_blkmsg_t; - -/* - * @cmd: IOCTL_PRIVCMD_HYPERCALL - * @arg: &privcmd_hypercall_t - * Return: Value returned from execution of the specified hypercall. - */ -#define IOCTL_PRIVCMD_HYPERCALL \ - _IOC(_IOC_NONE, 'P', 0, sizeof(privcmd_hypercall_t)) - -/* - * @cmd: IOCTL_PRIVCMD_INITDOMAIN_EVTCHN - * @arg: n/a - * Return: Port associated with domain-controller end of control event channel - * for the initial domain. - */ -#define IOCTL_PRIVCMD_INITDOMAIN_EVTCHN \ - _IOC(_IOC_NONE, 'P', 1, 0) -#define IOCTL_PRIVCMD_MMAP \ - _IOC(_IOC_NONE, 'P', 2, sizeof(privcmd_mmap_t)) -#define IOCTL_PRIVCMD_MMAPBATCH \ - _IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t)) -#define IOCTL_PRIVCMD_GET_MACH2PHYS_START_MFN \ - _IOC(_IOC_READ, 'P', 4, sizeof(unsigned long)) -#define IOCTL_PRIVCMD_INITDOMAIN_STORE \ - _IOC(_IOC_READ, 'P', 5, 0) - -#endif /* __PRIVCMD_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/linux-public/suspend.h --- a/linux-2.6-xen-sparse/include/asm-xen/linux-public/suspend.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,43 +0,0 @@ -/****************************************************************************** - * suspend.h - * - * Copyright (c) 2003-2004, K A Fraser - * - * This file may be distributed separately from the Linux kernel, or - * incorporated into other software packages, subject to the following license: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this source file (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, modify, - * merge, publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __ASM_XEN_SUSPEND_H__ -#define __ASM_XEN_SUSPEND_H__ - -typedef struct suspend_record_st { - /* To be filled in before resume. */ - start_info_t resume_info; - /* - * The number of a machine frame containing, in sequence, the number of - * each machine frame that contains PFN -> MFN translation table data. - */ - unsigned long pfn_to_mfn_frame_list; - /* Number of entries in the PFN -> MFN translation table. */ - unsigned long nr_pfns; -} suspend_record_t; - -#endif /* __ASM_XEN_SUSPEND_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/queues.h --- a/linux-2.6-xen-sparse/include/asm-xen/queues.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,81 +0,0 @@ - -/* - * Oh dear. Task queues were removed from Linux 2.6 and replaced by work - * queues. Unfortunately the semantics is not the same. With task queues we - * can defer work until a particular event occurs -- this is not - * straightforwardly done with work queues (queued work is performed asap, or - * after some fixed timeout). Conversely, work queues are a (slightly) neater - * way of deferring work to a process context than using task queues in 2.4. - * - * This is a bit of a needless reimplementation -- should have just pulled - * the code from 2.4, but I tried leveraging work queues to simplify things. - * They didn't help. :-( - */ - -#ifndef __QUEUES_H__ -#define __QUEUES_H__ - -#include <linux/version.h> -#include <linux/list.h> -#include <linux/workqueue.h> - -struct tq_struct { - void (*fn)(void *); - void *arg; - struct list_head list; - unsigned long pending; -}; -#define INIT_TQUEUE(_name, _fn, _arg) \ - do { \ - INIT_LIST_HEAD(&(_name)->list); \ - (_name)->pending = 0; \ - (_name)->fn = (_fn); (_name)->arg = (_arg); \ - } while ( 0 ) -#define DECLARE_TQUEUE(_name, _fn, _arg) \ - struct tq_struct _name = { (_fn), (_arg), LIST_HEAD_INIT((_name).list), 0 } - -typedef struct { - struct list_head list; - spinlock_t lock; -} task_queue; -#define DECLARE_TASK_QUEUE(_name) \ - task_queue _name = { LIST_HEAD_INIT((_name).list), SPIN_LOCK_UNLOCKED } - -static inline int queue_task(struct tq_struct *tqe, task_queue *tql) -{ - unsigned long flags; - if ( test_and_set_bit(0, &tqe->pending) ) - return 0; - spin_lock_irqsave(&tql->lock, flags); - list_add_tail(&tqe->list, &tql->list); - spin_unlock_irqrestore(&tql->lock, flags); - return 1; -} - -static inline void run_task_queue(task_queue *tql) -{ - struct list_head head, *ent; - struct tq_struct *tqe; - unsigned long flags; - void (*fn)(void *); - void *arg; - - spin_lock_irqsave(&tql->lock, flags); - list_add(&head, &tql->list); - list_del_init(&tql->list); - spin_unlock_irqrestore(&tql->lock, flags); - - while ( !list_empty(&head) ) - { - ent = head.next; - list_del_init(ent); - tqe = list_entry(ent, struct tq_struct, list); - fn = tqe->fn; - arg = tqe->arg; - wmb(); - tqe->pending = 0; - fn(arg); - } -} - -#endif /* __QUEUES_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/synch_bitops.h --- a/linux-2.6-xen-sparse/include/asm-xen/synch_bitops.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,2 +0,0 @@ - -#include <asm-i386/synch_bitops.h> diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/xen_proc.h --- a/linux-2.6-xen-sparse/include/asm-xen/xen_proc.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,13 +0,0 @@ - -#ifndef __ASM_XEN_PROC_H__ -#define __ASM_XEN_PROC_H__ - -#include <linux/config.h> -#include <linux/proc_fs.h> - -extern struct proc_dir_entry *create_xen_proc_entry( - const char *name, mode_t mode); -extern void remove_xen_proc_entry( - const char *name); - -#endif /* __ASM_XEN_PROC_H__ */ diff -r 61cbf8f977ef linux-2.6-xen-sparse/include/asm-xen/xenbus.h --- a/linux-2.6-xen-sparse/include/asm-xen/xenbus.h Thu Aug 4 18:51:55 2005 +++ /dev/null Thu Aug 4 22:18:07 2005 @@ -1,122 +0,0 @@ -#ifndef _ASM_XEN_XENBUS_H -#define _ASM_XEN_XENBUS_H -/****************************************************************************** - * xenbus.h - * - * Talks to Xen Store to figure out what devices we have. - * - * Copyright (C) 2005 Rusty Russell, IBM Corporation - * - * This file may be distributed separately from the Linux kernel, or - * incorporated into other software packages, subject to the following license: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this source file (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, modify, - * merge, publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ -#include <linux/device.h> -#include <asm/semaphore.h> - -/* A xenbus device. */ -struct xenbus_device { - char *devicetype; - char *subtype; - char *nodename; - struct device dev; - int has_error; - void *data; -}; - -static inline struct xenbus_device *to_xenbus_device(struct device *dev) -{ - return container_of(dev, struct xenbus_device, dev); -} - -struct xenbus_device_id -{ - /* .../device/<device_type>/<identifier> */ - char devicetype[32]; /* General class of device. */ - char subtype[32]; /* Contents of "subtype" for this device */ -}; - -/* A xenbus driver. */ -struct xenbus_driver { - char *name; - struct module *owner; - const struct xenbus_device_id *ids; - int (*probe) (struct xenbus_device * dev, - const struct xenbus_device_id * id); - int (*remove) (struct xenbus_device * dev); - struct device_driver driver; -}; - -static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv) -{ - return container_of(drv, struct xenbus_driver, driver); -} - -int xenbus_register_driver(struct xenbus_driver *drv); -void xenbus_unregister_driver(struct xenbus_driver *drv); - -/* Caller must hold this lock to call these functions: it's also held - * across watch callbacks. */ -extern struct semaphore xenbus_lock; - -char **xenbus_directory(const char *dir, const char *node, unsigned int *num); -void *xenbus_read(const char *dir, const char *node, unsigned int *len); -int xenbus_write(const char *dir, const char *node, - const char *string, int createflags); -int xenbus_mkdir(const char *dir, const char *node); -int xenbus_exists(const char *dir, const char *node); -int xenbus_rm(const char *dir, const char *node); -int xenbus_transaction_start(const char *subtree); -int xenbus_transaction_end(int abort); - -/* Single read and scanf: returns -errno or num scanned if > 0. */ -int xenbus_scanf(const char *dir, const char *node, const char *fmt, ...) - __attribute__((format(scanf, 3, 4))); - -/* Single printf and write: returns -errno or 0. */ -int xenbus_printf(const char *dir, const char *node, const char *fmt, ...) - __attribute__((format(printf, 3, 4))); - -/* Generic read function: NULL-terminated triples of name, - * sprintf-style type string, and pointer. Returns 0 or errno.*/ -int xenbus_gather(const char *dir, ...); - -/* Report a (negative) errno into the store, with explanation. */ -void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt,...); - -/* Clear any error. */ -void xenbus_dev_ok(struct xenbus_device *dev); - -/* Register callback to watch this node. */ -struct xenbus_watch -{ - struct list_head list; - char *node; - void (*callback)(struct xenbus_watch *, const char *node); -}; - -int register_xenbus_watch(struct xenbus_watch *watch); -void unregister_xenbus_watch(struct xenbus_watch *watch); - -/* Called from xen core code. */ -void xenbus_suspend(void); -void xenbus_resume(void); - -#endif /* _ASM_XEN_XENBUS_H */ _______________________________________________ Xen-merge mailing list Xen-merge@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-merge
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |