[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] merge
# HG changeset patch # User ack@xxxxxxxxxxxxxxxxxxxxx # Node ID 9a277d391ff9fa56a883671e237b3b68c421066b # Parent e86343be473083c22247060eb532e8881ee0bbdd # Parent 2ff86cd7bda1e92ce56701eb994fb592971d056a merge --- linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c | 51 ++++++++-------- linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c | 51 ++++++++-------- linux-2.6-xen-sparse/drivers/xen/Kconfig | 2 linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c | 8 +- linux-2.6-xen-sparse/drivers/xen/core/reboot.c | 3 tools/libxc/ia64/xc_ia64_linux_restore.c | 4 - tools/libxc/powerpc64/xc_linux_build.c | 4 - tools/libxc/xc_linux_build.c | 8 +- tools/libxc/xc_linux_restore.c | 5 - xen/arch/x86/domain_build.c | 8 +- xen/drivers/char/console.c | 2 xen/include/public/arch-ia64.h | 6 + xen/include/public/arch-powerpc.h | 5 - xen/include/public/arch-x86_32.h | 6 + xen/include/public/arch-x86_64.h | 6 + xen/include/public/xen-compat.h | 23 ------- xen/include/public/xen.h | 49 +++++++++++---- xen/include/xen/console.h | 2 18 files changed, 135 insertions(+), 108 deletions(-) diff -r e86343be4730 -r 9a277d391ff9 linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c --- a/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c Tue Aug 15 15:49:16 2006 +0100 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c Tue Aug 15 16:04:12 2006 +0100 @@ -1670,32 +1670,35 @@ void __init setup_arch(char **cmdline_p) screen_info.orig_video_cols = 80; screen_info.orig_video_ega_bx = 3; screen_info.orig_video_points = 16; - if (xen_start_info->con_info_size >= sizeof(console_info_t)) { - const console_info_t *console_info = (void *)xen_start_info + xen_start_info->con_info_offs; - - screen_info.orig_video_mode = console_info->txt_mode; - screen_info.orig_video_isVGA = console_info->video_type; - screen_info.orig_video_lines = console_info->video_height; - screen_info.orig_video_cols = console_info->video_width; - screen_info.orig_video_points = console_info->txt_points; - screen_info.lfb_width = console_info->video_width; - screen_info.lfb_height = console_info->video_height; - screen_info.lfb_depth = console_info->lfb_depth; - screen_info.lfb_base = console_info->lfb_base; - screen_info.lfb_size = console_info->lfb_size; - screen_info.lfb_linelength = console_info->lfb_linelen; - screen_info.red_size = console_info->red_size; - screen_info.red_pos = console_info->red_pos; - screen_info.green_size = console_info->green_size; - screen_info.green_pos = console_info->green_pos; - screen_info.blue_size = console_info->blue_size; - screen_info.blue_pos = console_info->blue_pos; - screen_info.rsvd_size = console_info->rsvd_size; - screen_info.rsvd_pos = console_info->rsvd_pos; + if (xen_start_info->console.dom0.info_size >= + sizeof(struct dom0_vga_console_info)) { + const struct dom0_vga_console_info *info = + (struct dom0_vga_console_info *)( + (char *)xen_start_info + + xen_start_info->console.dom0.info_off); + screen_info.orig_video_mode = info->txt_mode; + screen_info.orig_video_isVGA = info->video_type; + screen_info.orig_video_lines = info->video_height; + screen_info.orig_video_cols = info->video_width; + screen_info.orig_video_points = info->txt_points; + screen_info.lfb_width = info->video_width; + screen_info.lfb_height = info->video_height; + screen_info.lfb_depth = info->lfb_depth; + screen_info.lfb_base = info->lfb_base; + screen_info.lfb_size = info->lfb_size; + screen_info.lfb_linelength = info->lfb_linelen; + screen_info.red_size = info->red_size; + screen_info.red_pos = info->red_pos; + screen_info.green_size = info->green_size; + screen_info.green_pos = info->green_pos; + screen_info.blue_size = info->blue_size; + screen_info.blue_pos = info->blue_pos; + screen_info.rsvd_size = info->rsvd_size; + screen_info.rsvd_pos = info->rsvd_pos; } screen_info.orig_y = screen_info.orig_video_lines - 1; - xen_start_info->console_mfn = 0; - xen_start_info->console_evtchn = 0; + xen_start_info->console.domU.mfn = 0; + xen_start_info->console.domU.evtchn = 0; } else screen_info.orig_video_isVGA = 0; diff -r e86343be4730 -r 9a277d391ff9 linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c --- a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c Tue Aug 15 15:49:16 2006 +0100 +++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c Tue Aug 15 16:04:12 2006 +0100 @@ -648,32 +648,35 @@ void __init setup_arch(char **cmdline_p) screen_info.orig_video_cols = 80; screen_info.orig_video_ega_bx = 3; screen_info.orig_video_points = 16; - if (xen_start_info->con_info_size >= sizeof(console_info_t)) { - const console_info_t *console_info = (void *)xen_start_info + xen_start_info->con_info_offs; - - screen_info.orig_video_mode = console_info->txt_mode; - screen_info.orig_video_isVGA = console_info->video_type; - screen_info.orig_video_lines = console_info->video_height; - screen_info.orig_video_cols = console_info->video_width; - screen_info.orig_video_points = console_info->txt_points; - screen_info.lfb_width = console_info->video_width; - screen_info.lfb_height = console_info->video_height; - screen_info.lfb_depth = console_info->lfb_depth; - screen_info.lfb_base = console_info->lfb_base; - screen_info.lfb_size = console_info->lfb_size; - screen_info.lfb_linelength = console_info->lfb_linelen; - screen_info.red_size = console_info->red_size; - screen_info.red_pos = console_info->red_pos; - screen_info.green_size = console_info->green_size; - screen_info.green_pos = console_info->green_pos; - screen_info.blue_size = console_info->blue_size; - screen_info.blue_pos = console_info->blue_pos; - screen_info.rsvd_size = console_info->rsvd_size; - screen_info.rsvd_pos = console_info->rsvd_pos; + if (xen_start_info->console.dom0.info_size >= + sizeof(struct dom0_vga_console_info)) { + const struct dom0_vga_console_info *info = + (struct dom0_vga_console_info *)( + (char *)xen_start_info + + xen_start_info->console.dom0.info_off); + screen_info.orig_video_mode = info->txt_mode; + screen_info.orig_video_isVGA = info->video_type; + screen_info.orig_video_lines = info->video_height; + screen_info.orig_video_cols = info->video_width; + screen_info.orig_video_points = info->txt_points; + screen_info.lfb_width = info->video_width; + screen_info.lfb_height = info->video_height; + screen_info.lfb_depth = info->lfb_depth; + screen_info.lfb_base = info->lfb_base; + screen_info.lfb_size = info->lfb_size; + screen_info.lfb_linelength = info->lfb_linelen; + screen_info.red_size = info->red_size; + screen_info.red_pos = info->red_pos; + screen_info.green_size = info->green_size; + screen_info.green_pos = info->green_pos; + screen_info.blue_size = info->blue_size; + screen_info.blue_pos = info->blue_pos; + screen_info.rsvd_size = info->rsvd_size; + screen_info.rsvd_pos = info->rsvd_pos; } screen_info.orig_y = screen_info.orig_video_lines - 1; - xen_start_info->console_mfn = 0; - xen_start_info->console_evtchn = 0; + xen_start_info->console.domU.mfn = 0; + xen_start_info->console.domU.evtchn = 0; } else screen_info.orig_video_isVGA = 0; diff -r e86343be4730 -r 9a277d391ff9 linux-2.6-xen-sparse/drivers/xen/Kconfig --- a/linux-2.6-xen-sparse/drivers/xen/Kconfig Tue Aug 15 15:49:16 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/Kconfig Tue Aug 15 16:04:12 2006 +0100 @@ -13,7 +13,7 @@ if XEN if XEN config XEN_INTERFACE_VERSION hex - default 0x00030202 + default 0x00030203 menu "XEN" diff -r e86343be4730 -r 9a277d391ff9 linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c --- a/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c Tue Aug 15 15:49:16 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c Tue Aug 15 16:04:12 2006 +0100 @@ -52,13 +52,13 @@ static int xencons_irq; static inline struct xencons_interface *xencons_interface(void) { - return mfn_to_virt(xen_start_info->console_mfn); + return mfn_to_virt(xen_start_info->console.domU.mfn); } static inline void notify_daemon(void) { /* Use evtchn: this is called early, before irq is set up. */ - notify_remote_via_evtchn(xen_start_info->console_evtchn); + notify_remote_via_evtchn(xen_start_info->console.domU.evtchn); } int xencons_ring_send(const char *data, unsigned len) @@ -116,11 +116,11 @@ int xencons_ring_init(void) unbind_from_irqhandler(xencons_irq, NULL); xencons_irq = 0; - if (!xen_start_info->console_evtchn) + if (!xen_start_info->console.domU.evtchn) return 0; err = bind_evtchn_to_irqhandler( - xen_start_info->console_evtchn, + xen_start_info->console.domU.evtchn, handle_input, 0, "xencons", NULL); if (err <= 0) { printk(KERN_ERR "XEN console request irq failed %i\n", err); diff -r e86343be4730 -r 9a277d391ff9 linux-2.6-xen-sparse/drivers/xen/core/reboot.c --- a/linux-2.6-xen-sparse/drivers/xen/core/reboot.c Tue Aug 15 15:49:16 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/core/reboot.c Tue Aug 15 16:04:12 2006 +0100 @@ -106,7 +106,8 @@ static void pre_suspend(void) clear_fixmap(FIX_SHARED_INFO); xen_start_info->store_mfn = mfn_to_pfn(xen_start_info->store_mfn); - xen_start_info->console_mfn = mfn_to_pfn(xen_start_info->console_mfn); + xen_start_info->console.domU.mfn = + mfn_to_pfn(xen_start_info->console.domU.mfn); } static void post_suspend(void) diff -r e86343be4730 -r 9a277d391ff9 tools/libxc/ia64/xc_ia64_linux_restore.c --- a/tools/libxc/ia64/xc_ia64_linux_restore.c Tue Aug 15 15:49:16 2006 +0100 +++ b/tools/libxc/ia64/xc_ia64_linux_restore.c Tue Aug 15 16:04:12 2006 +0100 @@ -288,8 +288,8 @@ xc_linux_restore(int xc_handle, int io_f start_info->flags = 0; *store_mfn = page_array[start_info->store_mfn]; start_info->store_evtchn = store_evtchn; - *console_mfn = page_array[start_info->console_mfn]; - start_info->console_evtchn = console_evtchn; + *console_mfn = page_array[start_info->console.domU.mfn]; + start_info->console.domU.evtchn = console_evtchn; munmap(start_info, PAGE_SIZE); /* diff -r e86343be4730 -r 9a277d391ff9 tools/libxc/powerpc64/xc_linux_build.c --- a/tools/libxc/powerpc64/xc_linux_build.c Tue Aug 15 15:49:16 2006 +0100 +++ b/tools/libxc/powerpc64/xc_linux_build.c Tue Aug 15 16:04:12 2006 +0100 @@ -308,8 +308,8 @@ static unsigned long create_start_info(s si->shared_info = eomem - (PAGE_SIZE * 1); si->store_mfn = si->nr_pages - 2; si->store_evtchn = store_evtchn; - si->console_mfn = si->nr_pages - 3; - si->console_evtchn = console_evtchn; + si->console.domU.mfn = si->nr_pages - 3; + si->console.domU.evtchn = console_evtchn; si_addr = eomem - (PAGE_SIZE * 4); return si_addr; diff -r e86343be4730 -r 9a277d391ff9 tools/libxc/xc_linux_build.c --- a/tools/libxc/xc_linux_build.c Tue Aug 15 15:49:16 2006 +0100 +++ b/tools/libxc/xc_linux_build.c Tue Aug 15 16:04:12 2006 +0100 @@ -569,8 +569,8 @@ static int setup_guest(int xc_handle, start_info->flags = flags; start_info->store_mfn = nr_pages - 2; start_info->store_evtchn = store_evtchn; - start_info->console_mfn = nr_pages - 1; - start_info->console_evtchn = console_evtchn; + start_info->console.domU.mfn = nr_pages - 1; + start_info->console.domU.evtchn = console_evtchn; start_info->nr_pages = nr_pages; // FIXME?: nr_pages - 2 ???? bp = (struct xen_ia64_boot_param *)(start_info + 1); @@ -1047,8 +1047,8 @@ static int setup_guest(int xc_handle, start_info->mfn_list = vphysmap_start; start_info->store_mfn = guest_store_mfn; start_info->store_evtchn = store_evtchn; - start_info->console_mfn = guest_console_mfn; - start_info->console_evtchn = console_evtchn; + start_info->console.domU.mfn = guest_console_mfn; + start_info->console.domU.evtchn = console_evtchn; if ( initrd->len != 0 ) { start_info->mod_start = vinitrd_start; diff -r e86343be4730 -r 9a277d391ff9 tools/libxc/xc_linux_restore.c --- a/tools/libxc/xc_linux_restore.c Tue Aug 15 15:49:16 2006 +0100 +++ b/tools/libxc/xc_linux_restore.c Tue Aug 15 16:04:12 2006 +0100 @@ -690,8 +690,9 @@ int xc_linux_restore(int xc_handle, int start_info->flags = 0; *store_mfn = start_info->store_mfn = p2m[start_info->store_mfn]; start_info->store_evtchn = store_evtchn; - *console_mfn = start_info->console_mfn = p2m[start_info->console_mfn]; - start_info->console_evtchn = console_evtchn; + start_info->console.domU.mfn = p2m[start_info->console.domU.mfn]; + start_info->console.domU.evtchn = console_evtchn; + *console_mfn = start_info->console.domU.mfn; munmap(start_info, PAGE_SIZE); /* Uncanonicalise each GDT frame number. */ diff -r e86343be4730 -r 9a277d391ff9 xen/arch/x86/domain_build.c --- a/xen/arch/x86/domain_build.c Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/arch/x86/domain_build.c Tue Aug 15 16:04:12 2006 +0100 @@ -335,7 +335,9 @@ int construct_dom0(struct domain *d, vphysmap_start = round_pgup(vinitrd_end); vphysmap_end = vphysmap_start + (nr_pages * sizeof(unsigned long)); vstartinfo_start = round_pgup(vphysmap_end); - vstartinfo_end = vstartinfo_start + sizeof(start_info_t) + sizeof(console_info_t); + vstartinfo_end = (vstartinfo_start + + sizeof(struct start_info) + + sizeof(struct dom0_vga_console_info)); vpt_start = round_pgup(vstartinfo_end); for ( nr_pt_pages = 2; ; nr_pt_pages++ ) { @@ -773,8 +775,8 @@ int construct_dom0(struct domain *d, if ( fill_console_start_info((void *)(si + 1)) ) { - si->con_info_offs = sizeof(start_info_t); - si->con_info_size = sizeof(console_info_t); + si->console.dom0.info_off = sizeof(struct start_info); + si->console.dom0.info_size = sizeof(struct dom0_vga_console_info); } /* Reinstate the caller's page tables. */ diff -r e86343be4730 -r 9a277d391ff9 xen/drivers/char/console.c --- a/xen/drivers/char/console.c Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/drivers/char/console.c Tue Aug 15 16:04:12 2006 +0100 @@ -154,7 +154,7 @@ static void putchar_console(int c) } } -int fill_console_start_info(console_info_t *ci) +int fill_console_start_info(struct dom0_vga_console_info *ci) { memset(ci, 0, sizeof(*ci)); diff -r e86343be4730 -r 9a277d391ff9 xen/include/public/arch-ia64.h --- a/xen/include/public/arch-ia64.h Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/include/public/arch-ia64.h Tue Aug 15 16:04:12 2006 +0100 @@ -7,8 +7,14 @@ #ifndef __HYPERVISOR_IF_IA64_H__ #define __HYPERVISOR_IF_IA64_H__ +/* Structural guest handles introduced in 0x00030201. */ +#if __XEN_INTERFACE_VERSION__ >= 0x00030201 #define __DEFINE_XEN_GUEST_HANDLE(name, type) \ typedef struct { type *p; } __guest_handle_ ## name +#else +#define __DEFINE_XEN_GUEST_HANDLE(name, type) \ + typedef type * __guest_handle_ ## name +#endif #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name diff -r e86343be4730 -r 9a277d391ff9 xen/include/public/arch-powerpc.h --- a/xen/include/public/arch-powerpc.h Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/include/public/arch-powerpc.h Tue Aug 15 16:04:12 2006 +0100 @@ -20,11 +20,6 @@ #ifndef __XEN_PUBLIC_ARCH_PPC_64_H__ #define __XEN_PUBLIC_ARCH_PPC_64_H__ - -#if !(defined(__XEN__) || defined(__XEN_TOOLS__)) -/* not sure how this is supposed to get asserted */ -#define __XEN_INTERFACE_VERSION__ 0x00030202 -#endif #define __DEFINE_XEN_GUEST_HANDLE(name, type) \ typedef struct { \ diff -r e86343be4730 -r 9a277d391ff9 xen/include/public/arch-x86_32.h --- a/xen/include/public/arch-x86_32.h Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/include/public/arch-x86_32.h Tue Aug 15 16:04:12 2006 +0100 @@ -9,8 +9,14 @@ #ifndef __XEN_PUBLIC_ARCH_X86_32_H__ #define __XEN_PUBLIC_ARCH_X86_32_H__ +/* Structural guest handles introduced in 0x00030201. */ +#if __XEN_INTERFACE_VERSION__ >= 0x00030201 #define __DEFINE_XEN_GUEST_HANDLE(name, type) \ typedef struct { type *p; } __guest_handle_ ## name +#else +#define __DEFINE_XEN_GUEST_HANDLE(name, type) \ + typedef type * __guest_handle_ ## name +#endif #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name diff -r e86343be4730 -r 9a277d391ff9 xen/include/public/arch-x86_64.h --- a/xen/include/public/arch-x86_64.h Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/include/public/arch-x86_64.h Tue Aug 15 16:04:12 2006 +0100 @@ -9,8 +9,14 @@ #ifndef __XEN_PUBLIC_ARCH_X86_64_H__ #define __XEN_PUBLIC_ARCH_X86_64_H__ +/* Structural guest handles introduced in 0x00030201. */ +#if __XEN_INTERFACE_VERSION__ >= 0x00030201 #define __DEFINE_XEN_GUEST_HANDLE(name, type) \ typedef struct { type *p; } __guest_handle_ ## name +#else +#define __DEFINE_XEN_GUEST_HANDLE(name, type) \ + typedef type * __guest_handle_ ## name +#endif #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name diff -r e86343be4730 -r 9a277d391ff9 xen/include/public/xen-compat.h --- a/xen/include/public/xen-compat.h Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/include/public/xen-compat.h Tue Aug 15 16:04:12 2006 +0100 @@ -9,7 +9,7 @@ #ifndef __XEN_PUBLIC_XEN_COMPAT_H__ #define __XEN_PUBLIC_XEN_COMPAT_H__ -#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030202 +#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030203 #if defined(__XEN__) || defined(__XEN_TOOLS__) /* Xen is built with matching headers and implements the latest interface. */ @@ -23,25 +23,4 @@ #error "These header files do not support the requested interface version." #endif -/* New sched_op hypercall introduced in 0x00030101. */ -#if __XEN_INTERFACE_VERSION__ < 0x00030101 -#undef __HYPERVISOR_sched_op -#define __HYPERVISOR_sched_op __HYPERVISOR_sched_op_compat -#endif - -/* Structural guest handles introduced in 0x00030201. */ -#if __XEN_INTERFACE_VERSION__ < 0x00030201 -#undef __DEFINE_XEN_GUEST_HANDLE -#define __DEFINE_XEN_GUEST_HANDLE(name, type) \ - typedef type * __guest_handle_ ## name -#endif - -/* New event-channel and physdev hypercalls introduced in 0x00030202. */ -#if __XEN_INTERFACE_VERSION__ < 0x00030202 -#undef __HYPERVISOR_event_channel_op -#define __HYPERVISOR_event_channel_op __HYPERVISOR_event_channel_op_compat -#undef __HYPERVISOR_physdev_op -#define __HYPERVISOR_physdev_op __HYPERVISOR_physdev_op_compat -#endif - #endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */ diff -r e86343be4730 -r 9a277d391ff9 xen/include/public/xen.h --- a/xen/include/public/xen.h Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/include/public/xen.h Tue Aug 15 16:04:12 2006 +0100 @@ -8,6 +8,8 @@ #ifndef __XEN_PUBLIC_XEN_H__ #define __XEN_PUBLIC_XEN_H__ + +#include "xen-compat.h" #if defined(__i386__) #include "arch-x86_32.h" @@ -78,6 +80,24 @@ #define __HYPERVISOR_arch_6 54 #define __HYPERVISOR_arch_7 55 +/* + * HYPERCALL COMPATIBILITY. + */ + +/* New sched_op hypercall introduced in 0x00030101. */ +#if __XEN_INTERFACE_VERSION__ < 0x00030101 +#undef __HYPERVISOR_sched_op +#define __HYPERVISOR_sched_op __HYPERVISOR_sched_op_compat +#endif + +/* New event-channel and physdev hypercalls introduced in 0x00030202. */ +#if __XEN_INTERFACE_VERSION__ < 0x00030202 +#undef __HYPERVISOR_event_channel_op +#define __HYPERVISOR_event_channel_op __HYPERVISOR_event_channel_op_compat +#undef __HYPERVISOR_physdev_op +#define __HYPERVISOR_physdev_op __HYPERVISOR_physdev_op_compat +#endif + /* * VIRTUAL INTERRUPTS * @@ -467,14 +487,15 @@ struct start_info { xen_pfn_t store_mfn; /* MACHINE page number of shared page. */ uint32_t store_evtchn; /* Event channel for store communication. */ union { - xen_pfn_t console_mfn; /* MACHINE page number of console page. */ - uint32_t con_info_offs; /* Dom0 only: offset of console_info from - start_info */ - }; - union { - uint32_t console_evtchn;/* Event channel for console messages. */ - uint32_t con_info_size; /* Dom0 only: size of console_info */ - }; + struct { + xen_pfn_t mfn; /* MACHINE page number of console page. */ + uint32_t evtchn; /* Event channel for console page. */ + } domU; + struct { + uint32_t info_off; /* Offset of console_info struct. */ + uint32_t info_size; /* Size of console_info struct from start.*/ + } dom0; + } console; /* THE FOLLOWING ARE ONLY FILLED IN ON INITIAL BOOT (NOT RESUME). */ unsigned long pt_base; /* VIRTUAL address of page directory. */ unsigned long nr_pt_frames; /* Number of bootstrap p.t. frames. */ @@ -485,11 +506,17 @@ struct start_info { }; typedef struct start_info start_info_t; +/* New console union for dom0 introduced in 0x00030203. */ +#if __XEN_INTERFACE_VERSION__ < 0x00030203 +#define console_mfn console.domU.mfn +#define console_evtchn console.domU.evtchn +#endif + /* These flags are passed in the 'flags' field of start_info_t. */ #define SIF_PRIVILEGED (1<<0) /* Is the domain privileged? */ #define SIF_INITDOMAIN (1<<1) /* Is this the initial control domain? */ -typedef struct console_info { +typedef struct dom0_vga_console_info { uint8_t video_type; uint8_t txt_points; uint16_t txt_mode; @@ -509,7 +536,7 @@ typedef struct console_info { uint8_t blue_size; uint8_t rsvd_pos; uint8_t rsvd_size; -} console_info_t; +} dom0_vga_console_info_t; typedef uint64_t cpumap_t; @@ -525,8 +552,6 @@ typedef uint8_t xen_domain_handle_t[16]; #define mk_unsigned_long(x) x #endif /* !__ASSEMBLY__ */ - -#include "xen-compat.h" #endif /* __XEN_PUBLIC_XEN_H__ */ diff -r e86343be4730 -r 9a277d391ff9 xen/include/xen/console.h --- a/xen/include/xen/console.h Tue Aug 15 15:49:16 2006 +0100 +++ b/xen/include/xen/console.h Tue Aug 15 16:04:12 2006 +0100 @@ -18,7 +18,7 @@ void init_console(void); void init_console(void); void console_endboot(void); -int fill_console_start_info(console_info_t *); +int fill_console_start_info(struct dom0_vga_console_info *); void console_force_unlock(void); void console_force_lock(void); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |