# HG changeset patch
# User emellor@xxxxxxxxxxxxxxxxxxxxxx
# Node ID 50dcb6266990fa932e9952037940fddf7424017b
# Parent 725bf42d4713eaee5c12cd39752e86ca56dee4ce
# Parent fb50fba1895c3954f7d7bcecbc37221c58f235ff
Merged.
diff -r 725bf42d4713 -r 50dcb6266990 docs/man/xm.pod.1
--- a/docs/man/xm.pod.1 Wed Nov 16 11:36:47 2005
+++ b/docs/man/xm.pod.1 Wed Nov 16 11:37:29 2005
@@ -645,10 +645,6 @@
=item B<network-detach> I<domain-id> I<devid>
-=item B<network-limit> I<domain-id> I<vif> I<credit> I<period>
-
-Limit the transmission rate of a virtual network interface.
-
=item B<network-list> I<domain-id>
List virtual network interfaces for a domain. The returned output is
diff -r 725bf42d4713 -r 50dcb6266990
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 Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c Wed Nov 16
11:37:29 2005
@@ -15,6 +15,7 @@
#include <asm/io.h>
#include <asm-xen/balloon.h>
#include <asm/tlbflush.h>
+#include <asm/swiotlb.h>
struct dma_coherent_mem {
void *virt_base;
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/arch/xen/kernel/devmem.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/devmem.c Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/devmem.c Wed Nov 16 11:37:29 2005
@@ -79,7 +79,7 @@
if ((v = ioremap(p, count)) == NULL)
return -EFAULT;
- if (copy_to_user(v, buf, count))
+ if (copy_from_user(v, buf, count))
goto out;
written = count;
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c Wed Nov 16 11:37:29 2005
@@ -752,7 +752,7 @@
irq_bindcount[dynirq_to_irq(i)] = 0;
irq_desc[dynirq_to_irq(i)].status = IRQ_DISABLED;
- irq_desc[dynirq_to_irq(i)].action = 0;
+ irq_desc[dynirq_to_irq(i)].action = NULL;
irq_desc[dynirq_to_irq(i)].depth = 1;
irq_desc[dynirq_to_irq(i)].handler = &dynirq_type;
}
@@ -770,7 +770,7 @@
#endif
irq_desc[pirq_to_irq(i)].status = IRQ_DISABLED;
- irq_desc[pirq_to_irq(i)].action = 0;
+ irq_desc[pirq_to_irq(i)].action = NULL;
irq_desc[pirq_to_irq(i)].depth = 1;
irq_desc[pirq_to_irq(i)].handler = &pirq_type;
}
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/arch/xen/kernel/reboot.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Wed Nov 16 11:37:29 2005
@@ -15,6 +15,7 @@
#include <asm-xen/xenbus.h>
#include <linux/cpu.h>
#include <linux/kthread.h>
+#include <asm-xen/xencons.h>
#define SHUTDOWN_INVALID -1
#define SHUTDOWN_POWEROFF 0
@@ -29,7 +30,6 @@
void machine_restart(char * __unused)
{
/* We really want to get pending console data out before we die. */
- extern void xencons_force_flush(void);
xencons_force_flush();
HYPERVISOR_sched_op(SCHEDOP_shutdown, SHUTDOWN_reboot);
}
@@ -42,7 +42,6 @@
void machine_power_off(void)
{
/* We really want to get pending console data out before we die. */
- extern void xencons_force_flush(void);
xencons_force_flush();
HYPERVISOR_sched_op(SCHEDOP_shutdown, SHUTDOWN_poweroff);
}
@@ -84,8 +83,6 @@
cpumask_t prev_online_cpus;
int vcpu_prepare(int vcpu);
#endif
-
- extern void xencons_resume(void);
int err = 0;
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/arch/xen/kernel/xen_proc.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/xen_proc.c Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/xen_proc.c Wed Nov 16 11:37:29 2005
@@ -1,6 +1,7 @@
#include <linux/config.h>
#include <linux/proc_fs.h>
+#include <asm-xen/xen_proc.h>
static struct proc_dir_entry *xen_base;
diff -r 725bf42d4713 -r 50dcb6266990 linux-2.6-xen-sparse/drivers/acpi/tables.c
--- a/linux-2.6-xen-sparse/drivers/acpi/tables.c Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/acpi/tables.c Wed Nov 16 11:37:29 2005
@@ -565,7 +565,7 @@
*
* result: sdt_entry[] is initialized
*/
-#ifdef CONFIG_XEN_X86
+#if defined(CONFIG_XEN_X86) || defined(CONFIG_XEN_X86_64)
#define acpi_rsdp_phys_to_va(rsdp_phys) (__fix_to_virt(FIX_ACPI_RSDP_PAGE) + \
(rsdp_phys & ~PAGE_MASK))
#else
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
--- a/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c Wed Nov 16 11:37:29 2005
@@ -438,7 +438,7 @@
&dev_attr_pcrs.attr,
&dev_attr_caps.attr,
&dev_attr_cancel.attr,
- 0,
+ NULL,
};
static struct attribute_group xen_attr_grp = { .attrs = xen_attrs };
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c
--- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Wed Nov 16
11:37:29 2005
@@ -381,9 +381,9 @@
}
-int balloon_init_watcher(struct notifier_block *notifier,
- unsigned long event,
- void *data)
+static int balloon_init_watcher(struct notifier_block *notifier,
+ unsigned long event,
+ void *data)
{
int err;
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c Wed Nov 16
11:37:29 2005
@@ -543,7 +543,7 @@
spin_lock_init(&blkio_schedule_list_lock);
INIT_LIST_HEAD(&blkio_schedule_list);
- ret = kernel_thread(blkio_schedule, 0, CLONE_FS | CLONE_FILES);
+ ret = kernel_thread(blkio_schedule, NULL, CLONE_FS | CLONE_FILES);
BUG_ON(ret < 0);
blkif_xenbus_init();
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Wed Nov 16
11:37:29 2005
@@ -679,7 +679,7 @@
int j;
/* Stage 1: Make a safe copy of the shadow state. */
- copy = (struct blk_shadow *)kmalloc(sizeof(info->shadow), GFP_KERNEL);
+ copy = kmalloc(sizeof(info->shadow), GFP_KERNEL);
BUG_ON(copy == NULL);
memcpy(copy, info->shadow, sizeof(info->shadow));
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/drivers/xen/console/console.c
--- a/linux-2.6-xen-sparse/drivers/xen/console/console.c Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c Wed Nov 16
11:37:29 2005
@@ -53,6 +53,7 @@
#include <asm-xen/xen-public/event_channel.h>
#include <asm/hypervisor.h>
#include <asm-xen/evtchn.h>
+#include <asm-xen/xencons.h>
#include "xencons_ring.h"
/*
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Wed Nov 16
11:37:29 2005
@@ -854,7 +854,7 @@
{
int ret = 0;
- if(xenstored_ready > 0)
+ if (xenstored_ready > 0)
ret = nb->notifier_call(nb, 0, NULL);
else
notifier_chain_register(&xenstore_chain, nb);
@@ -884,7 +884,7 @@
register_xenbus_watch(&be_watch);
/* Notify others that xenstore is up */
- notifier_call_chain(&xenstore_chain, 0, 0);
+ notifier_call_chain(&xenstore_chain, 0, NULL);
}
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h Wed Nov 16
11:37:29 2005
@@ -228,7 +228,7 @@
* used as the IO-area pointer (it can be iounmapped as well, so the
* analogy with PCI is quite large):
*/
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
#define isa_readb(a) readb(__ISA_IO_base + (a))
#define isa_readw(a) readw(__ISA_IO_base + (a))
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h Wed Nov 16
11:36:47 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h Wed Nov 16
11:37:29 2005
@@ -298,7 +298,7 @@
* used as the IO-area pointer (it can be iounmapped as well, so the
* analogy with PCI is quite large):
*/
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
#define isa_readb(a) readb(__ISA_IO_base + (a))
#define isa_readw(a) readw(__ISA_IO_base + (a))
diff -r 725bf42d4713 -r 50dcb6266990 tools/libxc/xc_linux_build.c
--- a/tools/libxc/xc_linux_build.c Wed Nov 16 11:36:47 2005
+++ b/tools/libxc/xc_linux_build.c Wed Nov 16 11:37:29 2005
@@ -351,7 +351,7 @@
xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[0]);
memset(start_info, 0, sizeof(*start_info));
rc = xc_version(xc_handle, XENVER_version, NULL);
- sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF));
+ sprintf(start_info->magic, "xen-%i.%i-ia64", rc >> 16, rc & (0xFFFF));
start_info->flags = flags;
start_info->store_mfn = nr_pages - 2;
start_info->store_evtchn = store_evtchn;
@@ -628,7 +628,9 @@
page_array[(vstartinfo_start-dsi.v_start)>>PAGE_SHIFT]);
memset(start_info, 0, sizeof(*start_info));
rc = xc_version(xc_handle, XENVER_version, NULL);
- sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF));
+ sprintf(start_info->magic, "xen-%i.%i-x86_%d%s",
+ rc >> 16, rc & (0xFFFF), sizeof(long)*8,
+ dsi.pae_kernel ? "p" : "");
start_info->nr_pages = nr_pages;
start_info->shared_info = shared_info_frame << PAGE_SHIFT;
start_info->flags = flags;
diff -r 725bf42d4713 -r 50dcb6266990 tools/python/xen/xend/XendClient.py
--- a/tools/python/xen/xend/XendClient.py Wed Nov 16 11:36:47 2005
+++ b/tools/python/xen/xend/XendClient.py Wed Nov 16 11:37:29 2005
@@ -301,13 +301,6 @@
return self.xendPost(self.domainurl(dom),
{'op' : 'set_vcpus',
'vcpus' : vcpus })
-
- def xend_domain_vif_limit(self, id, vif, credit, period):
- return self.xendPost(self.domainurl(id),
- { 'op' : 'vif_limit_set',
- 'vif' : vif,
- 'credit' : credit,
- 'period' : period })
def xend_domain_devices(self, id, type):
return self.xendPost(self.domainurl(id),
diff -r 725bf42d4713 -r 50dcb6266990 tools/python/xen/xend/XendDomain.py
--- a/tools/python/xen/xend/XendDomain.py Wed Nov 16 11:36:47 2005
+++ b/tools/python/xen/xend/XendDomain.py Wed Nov 16 11:37:29 2005
@@ -466,17 +466,6 @@
except Exception, ex:
raise XendError(str(ex))
-
- def domain_vif_limit_set(self, domid, vif, credit, period):
- """Limit the vif's transmission rate
- """
- dominfo = self.domain_lookup(domid)
- dev = dominfo.getDevice('vif', vif)
- if not dev:
- raise XendError("invalid vif")
- return dev.setCreditLimit(credit, period)
-
-
def domain_maxmem_set(self, domid, mem):
"""Set the memory limit for a domain.
diff -r 725bf42d4713 -r 50dcb6266990 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py Wed Nov 16 11:36:47 2005
+++ b/tools/python/xen/xm/main.py Wed Nov 16 11:37:29 2005
@@ -118,8 +118,6 @@
Create a new virtual network device
network-detach <DomId> <DevId> Destroy a domain's virtual network
device, where <DevId> is the device ID.
- network-limit <DomId> <Vif> <Credit> <Period>
- Limit the transmission rate of a virtual network interface
network-list <DomId> List virtual network interfaces for a domain
Vnet commands:
@@ -556,13 +554,6 @@
def xm_log(args):
from xen.xend.XendClient import server
print server.xend_node_log()
-
-def xm_network_limit(args):
- arg_check(args,4,"network-limit")
- dom = args[0]
- v = map(int, args[1:4])
- from xen.xend.XendClient import server
- server.xend_domain_vif_limit(dom, *v)
def xm_network_list(args):
arg_check(args,1,"network-list")
@@ -716,7 +707,6 @@
# network
"network-attach": xm_network_attach,
"network-detach": xm_network_detach,
- "network-limit": xm_network_limit,
"network-list": xm_network_list,
# vnet
"vnet-list": xm_vnet_list,
@@ -739,7 +729,6 @@
aliases = {
"balloon": "mem-set",
"vif-list": "network-list",
- "vif-limit": "network-limit",
"vbd-create": "block-create",
"vbd-destroy": "block-destroy",
"vbd-list": "block-list",
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c Wed Nov 16 11:36:47 2005
+++ b/xen/arch/ia64/xen/domain.c Wed Nov 16 11:37:29 2005
@@ -952,7 +952,7 @@
si = (start_info_t *)alloc_xenheap_page();
memset(si, 0, PAGE_SIZE);
d->shared_info->arch.start_info_pfn = __pa(si) >> PAGE_SHIFT;
- sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION);
+ sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION);
#if 0
si->nr_pages = d->tot_pages;
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/x86/domain_build.c
--- a/xen/arch/x86/domain_build.c Wed Nov 16 11:36:47 2005
+++ b/xen/arch/x86/domain_build.c Wed Nov 16 11:37:29 2005
@@ -639,7 +639,8 @@
si->pt_base = vpt_start;
si->nr_pt_frames = nr_pt_pages;
si->mfn_list = vphysmap_start;
- sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION);
+ sprintf(si->magic, "xen-%i.%i-x86_%d%s",
+ XEN_VERSION, XEN_SUBVERSION, BITS_PER_LONG, xen_pae ? "p" : "");
/* Write the phys->machine and machine->phys table entries. */
for ( pfn = 0; pfn < d->tot_pages; pfn++ )
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/x86/shadow.c
--- a/xen/arch/x86/shadow.c Wed Nov 16 11:36:47 2005
+++ b/xen/arch/x86/shadow.c Wed Nov 16 11:37:29 2005
@@ -873,7 +873,7 @@
}
static struct out_of_sync_entry *
-mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+__mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
unsigned long mfn)
{
struct domain *d = v->domain;
@@ -909,7 +909,6 @@
entry->v = v;
entry->gpfn = gpfn;
entry->gmfn = mfn;
- entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
entry->writable_pl1e = -1;
#if 0 // this code has not been updated for 32pae & 64 bit modes
@@ -923,20 +922,34 @@
//
get_page(page, d);
+ return entry;
+}
+
+static struct out_of_sync_entry *
+mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+ unsigned long mfn)
+{
+ struct out_of_sync_entry *entry =
+ __mark_mfn_out_of_sync(v, gpfn, mfn);
+ struct domain *d = v->domain;
+
+ entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
// Add to the out-of-sync list
//
entry->next = d->arch.out_of_sync;
d->arch.out_of_sync = entry;
return entry;
+
}
static void shadow_mark_va_out_of_sync(
struct vcpu *v, unsigned long gpfn, unsigned long mfn, unsigned long va)
{
struct out_of_sync_entry *entry =
- shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
+ __mark_mfn_out_of_sync(v, gpfn, mfn);
l2_pgentry_t sl2e;
+ struct domain *d = v->domain;
#if CONFIG_PAGING_LEVELS >= 4
{
@@ -971,6 +984,7 @@
}
ASSERT(l2e_get_flags(sl2e) & _PAGE_PRESENT);
+ entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
// NB: this is stored as a machine address.
entry->writable_pl1e =
l2e_get_paddr(sl2e) | (sizeof(l1_pgentry_t) * l1_table_offset(va));
@@ -982,6 +996,11 @@
//
if ( !get_shadow_ref(l2e_get_pfn(sl2e)) )
BUG();
+
+ // Add to the out-of-sync list
+ //
+ entry->next = d->arch.out_of_sync;
+ d->arch.out_of_sync = entry;
FSH_LOG("mark_out_of_sync(va=%lx -> writable_pl1e=%lx)",
va, entry->writable_pl1e);
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/x86/shadow32.c
--- a/xen/arch/x86/shadow32.c Wed Nov 16 11:36:47 2005
+++ b/xen/arch/x86/shadow32.c Wed Nov 16 11:37:29 2005
@@ -1826,7 +1826,7 @@
}
struct out_of_sync_entry *
-shadow_mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+__shadow_mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
unsigned long mfn)
{
struct domain *d = v->domain;
@@ -1862,7 +1862,6 @@
entry->v = v;
entry->gpfn = gpfn;
entry->gmfn = mfn;
- entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
entry->writable_pl1e = -1;
#if SHADOW_DEBUG
@@ -1874,6 +1873,18 @@
//
get_page(page, d);
+ return entry;
+}
+
+struct out_of_sync_entry *
+shadow_mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+ unsigned long mfn)
+{
+ struct out_of_sync_entry *entry =
+ __shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
+ struct domain *d = v->domain;
+
+ entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
// Add to the out-of-sync list
//
entry->next = d->arch.out_of_sync;
@@ -1886,8 +1897,9 @@
struct vcpu *v, unsigned long gpfn, unsigned long mfn, unsigned long va)
{
struct out_of_sync_entry *entry =
- shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
+ __shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
l2_pgentry_t sl2e;
+ struct domain *d = v->domain;
// We need the address of shadow PTE that maps @va.
// It might not exist yet. Make sure it's there.
@@ -1902,6 +1914,7 @@
}
ASSERT(l2e_get_flags(sl2e) & _PAGE_PRESENT);
+ entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
// NB: this is stored as a machine address.
entry->writable_pl1e =
l2e_get_paddr(sl2e) | (sizeof(l1_pgentry_t) * l1_table_offset(va));
@@ -1913,6 +1926,11 @@
//
if ( !get_shadow_ref(l2e_get_pfn(sl2e)) )
BUG();
+
+ // Add to the out-of-sync list
+ //
+ entry->next = d->arch.out_of_sync;
+ d->arch.out_of_sync = entry;
FSH_LOG("mark_out_of_sync(va=%lx -> writable_pl1e=%lx)",
va, entry->writable_pl1e);
diff -r 725bf42d4713 -r 50dcb6266990 xen/include/public/xen.h
--- a/xen/include/public/xen.h Wed Nov 16 11:36:47 2005
+++ b/xen/include/public/xen.h Wed Nov 16 11:37:29 2005
@@ -408,7 +408,7 @@
#define MAX_GUEST_CMDLINE 1024
typedef struct start_info {
/* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME. */
- char magic[32]; /* "Xen-<version>.<subversion>". */
+ char magic[32]; /* "xen-<version>-<platform>". */
unsigned long nr_pages; /* Total pages allocated to this domain. */
unsigned long shared_info; /* MACHINE address of shared info struct. */
uint32_t flags; /* SIF_xxx flags. */
diff -r 725bf42d4713 -r 50dcb6266990
linux-2.6-xen-sparse/include/asm-xen/xencons.h
--- /dev/null Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/xencons.h Wed Nov 16 11:37:29 2005
@@ -0,0 +1,7 @@
+#ifndef __ASM_XENCONS_H__
+#define __ASM_XENCONS_H__
+
+void xencons_force_flush(void);
+void xencons_resume(void);
+
+#endif /* __ASM_XENCONS_H__ */
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|