[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Move hypervisor.h to asm-i386/asm-x86_64.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 1936ccaccf5e1d57c269c667b1090f7514661a8b # Parent 0a7194ec36a48141c162df97a7fd4c3fd65f5cc6 Move hypervisor.h to asm-i386/asm-x86_64. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> diff -r 0a7194ec36a4 -r 1936ccaccf5e 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 Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/common.c Wed Sep 14 09:17:44 2005 @@ -15,7 +15,7 @@ #include <asm/apic.h> #include <mach_apic.h> #endif -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include "cpu.h" diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/arch/xen/i386/kernel/setup.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/setup.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/setup.c Wed Sep 14 09:17:44 2005 @@ -53,7 +53,7 @@ #include <asm/io_apic.h> #include <asm/ist.h> #include <asm/io.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/physdev.h> #include <asm-xen/xen-public/memory.h> #include "setup_arch_pre.h" diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c Wed Sep 14 09:17:44 2005 @@ -33,7 +33,7 @@ #include <linux/vmalloc.h> #include <asm/page.h> #include <asm/pgtable.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/balloon.h> #include <asm-xen/xen-public/memory.h> #include <linux/module.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/arch/xen/i386/mm/init.c --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/init.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/init.c Wed Sep 14 09:17:44 2005 @@ -39,7 +39,7 @@ #include <asm/tlb.h> #include <asm/tlbflush.h> #include <asm/sections.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> extern unsigned long *contiguous_bitmap; diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c Wed Sep 14 09:17:44 2005 @@ -25,7 +25,7 @@ #include <asm/mmu_context.h> #include <asm-xen/foreign_page.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> void show_mem(void) { diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c Wed Sep 14 09:17:44 2005 @@ -40,7 +40,7 @@ #include <asm/synch_bitops.h> #include <asm-xen/xen-public/event_channel.h> #include <asm-xen/xen-public/physdev.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/evtchn.h> /* diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/arch/xen/kernel/reboot.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Wed Sep 14 09:17:44 2005 @@ -10,7 +10,7 @@ #include <asm/irq.h> #include <asm/mmu_context.h> #include <asm-xen/evtchn.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/dom0_ops.h> #include <asm-xen/queues.h> #include <asm-xen/xenbus.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/arch/xen/kernel/skbuff.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/skbuff.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/skbuff.c Wed Sep 14 09:17:44 2005 @@ -12,7 +12,7 @@ #include <linux/init.h> #include <asm/io.h> #include <asm/page.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> /* Referenced in netback.c. */ /*static*/ kmem_cache_t *skbuff_cachep; diff -r 0a7194ec36a4 -r 1936ccaccf5e 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 Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup.c Wed Sep 14 09:17:44 2005 @@ -61,7 +61,7 @@ #include <linux/percpu.h> #include <asm-xen/xen-public/physdev.h> #include "setup_arch_pre.h" -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) #define PFN_PHYS(x) ((x) << PAGE_SHIFT) #define end_pfn_map end_pfn diff -r 0a7194ec36a4 -r 1936ccaccf5e 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 Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/setup64.c Wed Sep 14 09:17:44 2005 @@ -31,7 +31,7 @@ #include <asm/mman.h> #include <asm/numa.h> #ifdef CONFIG_XEN -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #endif char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c --- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Wed Sep 14 09:17:44 2005 @@ -42,7 +42,7 @@ #include <linux/highmem.h> #include <linux/vmalloc.h> #include <asm-xen/xen_proc.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/balloon.h> #include <asm-xen/xen-public/memory.h> #include <asm/pgalloc.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/blkback/common.h --- a/linux-2.6-xen-sparse/drivers/xen/blkback/common.h Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkback/common.h Wed Sep 14 09:17:44 2005 @@ -13,7 +13,7 @@ #include <asm/setup.h> #include <asm/pgalloc.h> #include <asm-xen/evtchn.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/io/blkif.h> #include <asm-xen/xen-public/io/ring.h> #include <asm-xen/gnttab.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/blkfront/block.h --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/block.h Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/block.h Wed Sep 14 09:17:44 2005 @@ -45,7 +45,7 @@ #include <linux/blkdev.h> #include <linux/major.h> #include <linux/devfs_fs_kernel.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xenbus.h> #include <asm-xen/xen-public/xen.h> #include <asm-xen/xen-public/io/blkif.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/blktap/blktap.h --- a/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.h Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.h Wed Sep 14 09:17:44 2005 @@ -20,7 +20,7 @@ #include <asm/io.h> #include <asm/setup.h> #include <asm/pgalloc.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/io/blkif.h> #include <asm-xen/xen-public/io/ring.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/blktap/common.h --- a/linux-2.6-xen-sparse/drivers/xen/blktap/common.h Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blktap/common.h Wed Sep 14 09:17:44 2005 @@ -13,7 +13,7 @@ #include <asm/setup.h> #include <asm/pgalloc.h> #include <asm-xen/evtchn.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/io/blkif.h> #include <asm-xen/xen-public/io/ring.h> #include <asm-xen/gnttab.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/console/console.c --- a/linux-2.6-xen-sparse/drivers/xen/console/console.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c Wed Sep 14 09:17:44 2005 @@ -50,7 +50,7 @@ #include <asm/irq.h> #include <asm/uaccess.h> #include <asm-xen/xen-public/event_channel.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/evtchn.h> #include "xencons_ring.h" diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c --- a/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c Wed Sep 14 09:17:44 2005 @@ -13,7 +13,7 @@ #include <linux/mm.h> #include <linux/slab.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/evtchn.h> #include <linux/wait.h> #include <linux/interrupt.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/usbback/common.h --- a/linux-2.6-xen-sparse/drivers/xen/usbback/common.h Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/usbback/common.h Wed Sep 14 09:17:44 2005 @@ -12,7 +12,7 @@ #include <asm/io.h> #include <asm/setup.h> #include <asm/pgalloc.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/io/usbif.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c Wed Sep 14 09:17:44 2005 @@ -27,7 +27,7 @@ * IN THE SOFTWARE. */ -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/evtchn.h> #include <linux/wait.h> #include <linux/interrupt.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Wed Sep 14 09:17:44 2005 @@ -27,7 +27,7 @@ */ #define DEBUG -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xenbus.h> #include <asm-xen/balloon.h> #include <linux/kernel.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e 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 Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h Wed Sep 14 09:17:44 2005 @@ -2,7 +2,7 @@ #define _I386_PGTABLE_H #include <linux/config.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> /* * The Linux memory management assumes a three-level page table setup. On diff -r 0a7194ec36a4 -r 1936ccaccf5e 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 Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/system.h Wed Sep 14 09:17:44 2005 @@ -7,7 +7,7 @@ #include <asm/synch_bitops.h> #include <asm/segment.h> #include <asm/cpufeature.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm/smp_alt.h> #ifdef __KERNEL__ diff -r 0a7194ec36a4 -r 1936ccaccf5e 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 Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h Wed Sep 14 09:17:44 2005 @@ -12,7 +12,7 @@ #include <linux/sched.h> #include <asm/pda.h> #ifdef CONFIG_XEN -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> extern pud_t level3_user_pgt[512]; extern pud_t init_level4_user_pgt[]; diff -r 0a7194ec36a4 -r 1936ccaccf5e 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 Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/system.h Wed Sep 14 09:17:44 2005 @@ -5,7 +5,7 @@ #include <linux/kernel.h> #include <asm/segment.h> #include <asm/synch_bitops.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/arch-x86_64.h> #ifdef __KERNEL__ diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/include/asm-xen/evtchn.h --- a/linux-2.6-xen-sparse/include/asm-xen/evtchn.h Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/evtchn.h Wed Sep 14 09:17:44 2005 @@ -33,7 +33,7 @@ #include <linux/config.h> #include <linux/interrupt.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm/ptrace.h> #include <asm/synch_bitops.h> #include <asm-xen/xen-public/event_channel.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/include/asm-xen/gnttab.h --- a/linux-2.6-xen-sparse/include/asm-xen/gnttab.h Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/gnttab.h Wed Sep 14 09:17:44 2005 @@ -14,7 +14,7 @@ #define __ASM_GNTTAB_H__ #include <linux/config.h> -#include <asm-xen/hypervisor.h> +#include <asm/hypervisor.h> #include <asm-xen/xen-public/grant_table.h> /* NR_GRANT_FRAMES must be less than or equal to that configured in Xen */ diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypervisor.h --- /dev/null Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypervisor.h Wed Sep 14 09:17:44 2005 @@ -0,0 +1,189 @@ +/****************************************************************************** + * 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 */ +extern start_info_t *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_create_contiguous_region(unsigned long vstart, unsigned int order); +void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order); + +#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 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypervisor.h --- /dev/null Wed Sep 14 09:14:32 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypervisor.h Wed Sep 14 09:17:44 2005 @@ -0,0 +1,2 @@ + +#include <asm-i386/hypervisor.h> diff -r 0a7194ec36a4 -r 1936ccaccf5e linux-2.6-xen-sparse/include/asm-xen/hypervisor.h --- a/linux-2.6-xen-sparse/include/asm-xen/hypervisor.h Wed Sep 14 09:14:32 2005 +++ /dev/null Wed Sep 14 09:17:44 2005 @@ -1,189 +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 */ -extern start_info_t *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_create_contiguous_region(unsigned long vstart, unsigned int order); -void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order); - -#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__ */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |