[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [XEN] Remove VGCF_hvm_guest, replace with XEN_DOMINF_hvm_guest.



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID cfb1136ee8f73a07d0c6fed9dc6f4084d592c129
# Parent  4ff83eddd1f65e64610f563fbd128e953a12d4e8
[XEN] Remove VGCF_hvm_guest, replace with XEN_DOMINF_hvm_guest.
Rename DOMFLAGS_* to XEN_DOMINF_*.
Clean up tools to deal with flags changes.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 tools/libxc/xc_core.c                  |    2 -
 tools/libxc/xc_domain.c                |   18 ++++++++------
 tools/libxc/xc_hvm_build.c             |    1 
 tools/libxc/xc_private.h               |    5 ++++
 tools/libxc/xc_ptrace.c                |   29 ++++++++++++-----------
 tools/libxc/xc_ptrace_core.c           |   24 ++++++++++---------
 tools/libxc/xenctrl.h                  |   21 ++++-------------
 tools/python/xen/lowlevel/xc/xc.c      |    3 +-
 tools/xenstat/libxenstat/src/xenstat.c |   20 ++++++++--------
 xen/arch/x86/domain.c                  |    4 ---
 xen/arch/x86/domctl.c                  |    2 -
 xen/common/domctl.c                    |   24 +++++++++++--------
 xen/include/asm-x86/hvm/support.h      |    3 --
 xen/include/public/arch-x86_32.h       |    3 --
 xen/include/public/arch-x86_64.h       |    3 --
 xen/include/public/domctl.h            |   40 +++++++++++++++++++++++----------
 xen/include/xen/sched.h                |    3 ++
 17 files changed, 106 insertions(+), 99 deletions(-)

diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/libxc/xc_core.c
--- a/tools/libxc/xc_core.c     Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/libxc/xc_core.c     Fri Nov 03 10:52:29 2006 +0000
@@ -62,7 +62,7 @@ xc_domain_dumpcore_via_callback(int xc_h
 
     nr_pages = info.nr_pages;
 
-    header.xch_magic = XC_CORE_MAGIC;
+    header.xch_magic = info.hvm ? XC_CORE_MAGIC_HVM : XC_CORE_MAGIC;
     header.xch_nr_vcpus = nr_vcpus;
     header.xch_nr_pages = nr_pages;
     header.xch_ctxt_offset = sizeof(struct xc_core_header);
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/libxc/xc_domain.c
--- a/tools/libxc/xc_domain.c   Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/libxc/xc_domain.c   Fri Nov 03 10:52:29 2006 +0000
@@ -171,15 +171,16 @@ int xc_domain_getinfo(int xc_handle,
             break;
         info->domid      = (uint16_t)domctl.domain;
 
-        info->dying    = !!(domctl.u.getdomaininfo.flags & DOMFLAGS_DYING);
-        info->shutdown = !!(domctl.u.getdomaininfo.flags & DOMFLAGS_SHUTDOWN);
-        info->paused   = !!(domctl.u.getdomaininfo.flags & DOMFLAGS_PAUSED);
-        info->blocked  = !!(domctl.u.getdomaininfo.flags & DOMFLAGS_BLOCKED);
-        info->running  = !!(domctl.u.getdomaininfo.flags & DOMFLAGS_RUNNING);
+        info->dying    = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_dying);
+        info->shutdown = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_shutdown);
+        info->paused   = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_paused);
+        info->blocked  = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_blocked);
+        info->running  = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_running);
+        info->hvm      = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_hvm_guest);
 
         info->shutdown_reason =
-            (domctl.u.getdomaininfo.flags>>DOMFLAGS_SHUTDOWNSHIFT) &
-            DOMFLAGS_SHUTDOWNMASK;
+            (domctl.u.getdomaininfo.flags>>XEN_DOMINF_shutdownshift) &
+            XEN_DOMINF_shutdownmask;
 
         if ( info->shutdown && (info->shutdown_reason == SHUTDOWN_crash) )
         {
@@ -202,7 +203,8 @@ int xc_domain_getinfo(int xc_handle,
         info++;
     }
 
-    if( !nr_doms ) return rc;
+    if ( nr_doms == 0 )
+        return rc;
 
     return nr_doms;
 }
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/libxc/xc_hvm_build.c
--- a/tools/libxc/xc_hvm_build.c        Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/libxc/xc_hvm_build.c        Fri Nov 03 10:52:29 2006 +0000
@@ -337,7 +337,6 @@ static int xc_hvm_build_internal(int xc_
     }
 
     memset(ctxt, 0, sizeof(*ctxt));
-    ctxt->flags = VGCF_HVM_GUEST;
 
     if ( setup_guest(xc_handle, domid, memsize, image, image_size,
                      ctxt, domctl.u.getdomaininfo.shared_info_frame,
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/libxc/xc_private.h
--- a/tools/libxc/xc_private.h  Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/libxc/xc_private.h  Fri Nov 03 10:52:29 2006 +0000
@@ -158,4 +158,9 @@ int xc_map_foreign_ranges(int xc_handle,
 int xc_map_foreign_ranges(int xc_handle, uint32_t dom,
                           privcmd_mmap_entry_t *entries, int nr);
 
+void *map_domain_va_core(unsigned long domfd, int cpu, void *guest_va,
+                         vcpu_guest_context_t *ctxt);
+int xc_waitdomain_core(int xc_handle, int domain, int *status,
+    int options, vcpu_guest_context_t *ctxt);
+
 #endif /* __XC_PRIVATE_H__ */
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/libxc/xc_ptrace.c
--- a/tools/libxc/xc_ptrace.c   Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/libxc/xc_ptrace.c   Fri Nov 03 10:52:29 2006 +0000
@@ -36,8 +36,9 @@ static char *ptrace_names[] = {
 };
 #endif
 
-static int                      current_domid = -1;
-static int                      current_isfile;
+static int current_domid = -1;
+static int current_isfile;
+static int current_is_hvm;
 
 static uint64_t                 online_cpumap;
 static uint64_t                 regs_valid;
@@ -45,7 +46,6 @@ static vcpu_guest_context_t     ctxt[MAX
 
 extern int ffsll(long long int);
 #define FOREACH_CPU(cpumap, i)  for ( cpumap = online_cpumap; (i = 
ffsll(cpumap)); cpumap &= ~(1 << (index - 1)) )
-
 
 static int
 fetch_regs(int xc_handle, int cpu, int *online)
@@ -172,7 +172,7 @@ to_ma(int cpu,
 {
     unsigned long maddr = in_addr;
 
-    if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) && paging_enabled(&ctxt[cpu]) )
+    if ( current_is_hvm && paging_enabled(&ctxt[cpu]) )
         maddr = page_array[maddr >> PAGE_SHIFT] << PAGE_SHIFT;
     return maddr;
 }
@@ -443,7 +443,7 @@ __xc_waitdomain(
         goto done;
     }
 
-    if ( !(domctl.u.getdomaininfo.flags & DOMFLAGS_PAUSED) )
+    if ( !(domctl.u.getdomaininfo.flags & XEN_DOMINF_paused) )
     {
         nanosleep(&ts,NULL);
         goto retry;
@@ -482,11 +482,11 @@ xc_ptrace(
     case PTRACE_PEEKTEXT:
     case PTRACE_PEEKDATA:
         if (current_isfile)
-            guest_va = (unsigned long *)map_domain_va_core(current_domid,
-                                cpu, addr, ctxt);
+            guest_va = (unsigned long *)map_domain_va_core(
+                current_domid, cpu, addr, ctxt);
         else
-            guest_va = (unsigned long *)map_domain_va(xc_handle,
-                                cpu, addr, PROT_READ);
+            guest_va = (unsigned long *)map_domain_va(
+                xc_handle, cpu, addr, PROT_READ);
         if ( guest_va == NULL )
             goto out_error;
         retval = *guest_va;
@@ -496,11 +496,11 @@ xc_ptrace(
     case PTRACE_POKEDATA:
         /* XXX assume that all CPUs have the same address space */
         if (current_isfile)
-            guest_va = (unsigned long *)map_domain_va_core(current_domid,
-                                cpu, addr, ctxt);
+            guest_va = (unsigned long *)map_domain_va_core(
+                current_domid, cpu, addr, ctxt);
         else
-            guest_va = (unsigned long *)map_domain_va(xc_handle,
-                                cpu, addr, PROT_READ|PROT_WRITE);
+            guest_va = (unsigned long *)map_domain_va(
+                xc_handle, cpu, addr, PROT_READ|PROT_WRITE);
         if ( guest_va == NULL )
             goto out_error;
         *guest_va = (unsigned long)data;
@@ -590,10 +590,11 @@ xc_ptrace(
         retval = do_domctl(xc_handle, &domctl);
         if ( retval || (domctl.domain != current_domid) )
             goto out_error_domctl;
-        if ( domctl.u.getdomaininfo.flags & DOMFLAGS_PAUSED )
+        if ( domctl.u.getdomaininfo.flags & XEN_DOMINF_paused )
             IPRINTF("domain currently paused\n");
         else if ((retval = xc_domain_pause(xc_handle, current_domid)))
             goto out_error_domctl;
+        current_is_hvm = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_hvm_guest);
         domctl.cmd = XEN_DOMCTL_setdebugging;
         domctl.domain = current_domid;
         domctl.u.setdebugging.enable = 1;
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/libxc/xc_ptrace_core.c
--- a/tools/libxc/xc_ptrace_core.c      Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/libxc/xc_ptrace_core.c      Fri Nov 03 10:52:29 2006 +0000
@@ -7,6 +7,7 @@
 
 /* XXX application state */
 
+static int    current_is_hvm = 0;
 static long   nr_pages = 0;
 static unsigned long  *p2m_array = NULL;
 static unsigned long  *m2p_array = NULL;
@@ -24,8 +25,8 @@ map_mtop_offset(unsigned long ma)
 
 
 void *
-map_domain_va_core(unsigned long domfd, int cpu, void * guest_va,
-                        vcpu_guest_context_t *ctxt)
+map_domain_va_core(unsigned long domfd, int cpu, void *guest_va,
+                   vcpu_guest_context_t *ctxt)
 {
     unsigned long pde, page;
     unsigned long va = (unsigned long)guest_va;
@@ -55,7 +56,7 @@ map_domain_va_core(unsigned long domfd, 
     }
     if ((pde = cr3_virt[cpu][l2_table_offset_i386(va)]) == 0) /* logical 
address */
         return NULL;
-    if (ctxt[cpu].flags & VGCF_HVM_GUEST)
+    if (current_is_hvm)
         pde = p2m_array[pde >> PAGE_SHIFT] << PAGE_SHIFT;
     if (pde != pde_phys[cpu])
     {
@@ -71,7 +72,7 @@ map_domain_va_core(unsigned long domfd, 
     }
     if ((page = pde_virt[cpu][l1_table_offset_i386(va)]) == 0) /* logical 
address */
         return NULL;
-    if (ctxt[cpu].flags & VGCF_HVM_GUEST)
+    if (current_is_hvm)
         page = p2m_array[page >> PAGE_SHIFT] << PAGE_SHIFT;
     if (page != page_phys[cpu])
     {
@@ -104,17 +105,18 @@ xc_waitdomain_core(
     int i;
     xc_core_header_t header;
 
-    if (nr_pages == 0)
+    if ( nr_pages == 0 )
     {
-
         if (read(domfd, &header, sizeof(header)) != sizeof(header))
             return -1;
 
-        if (header.xch_magic != XC_CORE_MAGIC) {
-                IPRINTF("Magic number missmatch: 0x%08x (file) != "
-                                        " 0x%08x (code)\n", header.xch_magic,
-                                        XC_CORE_MAGIC);
-                return -1;
+        current_is_hvm = (header.xch_magic == XC_CORE_MAGIC_HVM);
+        if ( !current_is_hvm && (header.xch_magic != XC_CORE_MAGIC) )
+        {
+            IPRINTF("Magic number missmatch: 0x%08x (file) != "
+                    " 0x%08x (code)\n", header.xch_magic,
+                    XC_CORE_MAGIC);
+            return -1;
         }
 
         nr_pages = header.xch_nr_pages;
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/libxc/xenctrl.h
--- a/tools/libxc/xenctrl.h     Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/libxc/xenctrl.h     Fri Nov 03 10:52:29 2006 +0000
@@ -113,25 +113,13 @@ typedef struct xc_core_header {
     unsigned int xch_pages_offset;
 } xc_core_header_t;
 
-#define XC_CORE_MAGIC 0xF00FEBED
+#define XC_CORE_MAGIC     0xF00FEBED
+#define XC_CORE_MAGIC_HVM 0xF00FEBEE
 
 #ifdef __linux__
 
 #include <sys/ptrace.h>
 #include <thread_db.h>
-
-void * map_domain_va_core(
-    unsigned long domfd,
-    int cpu,
-    void *guest_va,
-    vcpu_guest_context_t *ctxt);
-
-int xc_waitdomain_core(
-    int xc_handle,
-    int domain,
-    int *status,
-    int options,
-    vcpu_guest_context_t *ctxt);
 
 typedef void (*thr_ev_handler_t)(long);
 
@@ -158,11 +146,12 @@ int xc_waitdomain(
  * DOMAIN MANAGEMENT FUNCTIONS
  */
 
-typedef struct {
+typedef struct xc_dominfo {
     uint32_t      domid;
     uint32_t      ssidref;
     unsigned int  dying:1, crashed:1, shutdown:1,
-                  paused:1, blocked:1, running:1;
+                  paused:1, blocked:1, running:1,
+                  hvm:1;
     unsigned int  shutdown_reason; /* only meaningful if shutdown==1 */
     unsigned long nr_pages;
     unsigned long shared_info_frame;
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/python/xen/lowlevel/xc/xc.c Fri Nov 03 10:52:29 2006 +0000
@@ -257,11 +257,12 @@ static PyObject *pyxc_domain_getinfo(XcO
         PyObject *pyhandle = PyList_New(sizeof(xen_domain_handle_t));
         for ( j = 0; j < sizeof(xen_domain_handle_t); j++ )
             PyList_SetItem(pyhandle, j, PyInt_FromLong(info[i].handle[j]));
-        info_dict = Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i"
+        info_dict = Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i"
                                   ",s:l,s:L,s:l,s:i,s:i}",
                                   "domid",       info[i].domid,
                                   "online_vcpus", info[i].nr_online_vcpus,
                                   "max_vcpu_id", info[i].max_vcpu_id,
+                                  "hvm",       info[i].hvm,
                                   "dying",     info[i].dying,
                                   "crashed",   info[i].crashed,
                                   "shutdown",  info[i].shutdown,
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 tools/xenstat/libxenstat/src/xenstat.c
--- a/tools/xenstat/libxenstat/src/xenstat.c    Fri Nov 03 10:41:20 2006 +0000
+++ b/tools/xenstat/libxenstat/src/xenstat.c    Fri Nov 03 10:52:29 2006 +0000
@@ -449,36 +449,36 @@ unsigned int xenstat_domain_ssid(xenstat
 /* Get domain states */
 unsigned int xenstat_domain_dying(xenstat_domain * domain)
 {
-       return (domain->state & DOMFLAGS_DYING) == DOMFLAGS_DYING;
+       return (domain->state & XEN_DOMINF_dying) == XEN_DOMINF_dying;
 }
 
 unsigned int xenstat_domain_crashed(xenstat_domain * domain)
 {
-       return ((domain->state & DOMFLAGS_SHUTDOWN) == DOMFLAGS_SHUTDOWN)
-           && (((domain->state >> DOMFLAGS_SHUTDOWNSHIFT)
-                & DOMFLAGS_SHUTDOWNMASK) == SHUTDOWN_crash);
+       return ((domain->state & XEN_DOMINF_shutdown) == XEN_DOMINF_shutdown)
+           && (((domain->state >> XEN_DOMINF_shutdownshift)
+                & XEN_DOMINF_shutdownmask) == SHUTDOWN_crash);
 }
 
 unsigned int xenstat_domain_shutdown(xenstat_domain * domain)
 {
-       return ((domain->state & DOMFLAGS_SHUTDOWN) == DOMFLAGS_SHUTDOWN)
-           && (((domain->state >> DOMFLAGS_SHUTDOWNSHIFT)
-                & DOMFLAGS_SHUTDOWNMASK) != SHUTDOWN_crash);
+       return ((domain->state & XEN_DOMINF_shutdown) == XEN_DOMINF_shutdown)
+           && (((domain->state >> XEN_DOMINF_shutdownshift)
+                & XEN_DOMINF_shutdownmask) != SHUTDOWN_crash);
 }
 
 unsigned int xenstat_domain_paused(xenstat_domain * domain)
 {
-       return (domain->state & DOMFLAGS_PAUSED) == DOMFLAGS_PAUSED;
+       return (domain->state & XEN_DOMINF_paused) == XEN_DOMINF_paused;
 }
 
 unsigned int xenstat_domain_blocked(xenstat_domain * domain)
 {
-       return (domain->state & DOMFLAGS_BLOCKED) == DOMFLAGS_BLOCKED;
+       return (domain->state & XEN_DOMINF_blocked) == XEN_DOMINF_blocked;
 }
 
 unsigned int xenstat_domain_running(xenstat_domain * domain)
 {
-       return (domain->state & DOMFLAGS_RUNNING) == DOMFLAGS_RUNNING;
+       return (domain->state & XEN_DOMINF_running) == XEN_DOMINF_running;
 }
 
 /* Get the number of networks for a given domain */
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/arch/x86/domain.c
--- a/xen/arch/x86/domain.c     Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/arch/x86/domain.c     Fri Nov 03 10:52:29 2006 +0000
@@ -286,10 +286,6 @@ int arch_set_info_guest(
     unsigned long cr3_pfn = INVALID_MFN;
     int i, rc;
 
-    if ( !!(c->flags & VGCF_hvm_guest) != is_hvm_vcpu(v) )
-        return -EINVAL;
-    c->flags &= ~VGCF_hvm_guest;
-
     if ( !is_hvm_vcpu(v) )
     {
         fixup_guest_stack_selector(c->user_regs.ss);
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/arch/x86/domctl.c
--- a/xen/arch/x86/domctl.c     Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/arch/x86/domctl.c     Fri Nov 03 10:52:29 2006 +0000
@@ -310,8 +310,6 @@ void arch_getdomaininfo_ctxt(
         c->flags |= VGCF_i387_valid;
     if ( guest_kernel_mode(v, &v->arch.guest_context.user_regs) )
         c->flags |= VGCF_in_kernel;
-    if ( is_hvm_vcpu(v) )
-        c->flags |= VGCF_hvm_guest;
 
     c->ctrlreg[3] = xen_pfn_to_cr3(pagetable_get_pfn(v->arch.guest_table));
 
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/common/domctl.c
--- a/xen/common/domctl.c       Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/common/domctl.c       Fri Nov 03 10:52:29 2006 +0000
@@ -83,7 +83,7 @@ void getdomaininfo(struct domain *d, str
 {
     struct vcpu   *v;
     u64 cpu_time = 0;
-    int flags = DOMFLAGS_BLOCKED;
+    int flags = XEN_DOMINF_blocked;
     struct vcpu_runstate_info runstate;
     
     info->domain = d->domain_id;
@@ -93,16 +93,17 @@ void getdomaininfo(struct domain *d, str
      * - domain is marked as blocked only if all its vcpus are blocked
      * - domain is marked as running if any of its vcpus is running
      */
-    for_each_vcpu ( d, v ) {
+    for_each_vcpu ( d, v )
+    {
         vcpu_runstate_get(v, &runstate);
         cpu_time += runstate.time[RUNSTATE_running];
         info->max_vcpu_id = v->vcpu_id;
         if ( !test_bit(_VCPUF_down, &v->vcpu_flags) )
         {
             if ( !(v->vcpu_flags & VCPUF_blocked) )
-                flags &= ~DOMFLAGS_BLOCKED;
+                flags &= ~XEN_DOMINF_blocked;
             if ( v->vcpu_flags & VCPUF_running )
-                flags |= DOMFLAGS_RUNNING;
+                flags |= XEN_DOMINF_running;
             info->nr_online_vcpus++;
         }
     }
@@ -110,12 +111,15 @@ void getdomaininfo(struct domain *d, str
     info->cpu_time = cpu_time;
     
     info->flags = flags |
-        ((d->domain_flags & DOMF_dying)      ? DOMFLAGS_DYING    : 0) |
-        ((d->domain_flags & DOMF_shutdown)   ? DOMFLAGS_SHUTDOWN : 0) |
-        ((d->domain_flags & DOMF_ctrl_pause) ? DOMFLAGS_PAUSED   : 0) |
-        d->shutdown_code << DOMFLAGS_SHUTDOWNSHIFT;
-
-    if (d->ssid != NULL)
+        ((d->domain_flags & DOMF_dying)      ? XEN_DOMINF_dying    : 0) |
+        ((d->domain_flags & DOMF_shutdown)   ? XEN_DOMINF_shutdown : 0) |
+        ((d->domain_flags & DOMF_ctrl_pause) ? XEN_DOMINF_paused   : 0) |
+        d->shutdown_code << XEN_DOMINF_shutdownshift;
+
+    if ( is_hvm_domain(d) )
+        info->flags |= XEN_DOMINF_hvm_guest;
+
+    if ( d->ssid != NULL )
         info->ssidref = ((struct acm_ssid_domain *)d->ssid)->ssidref;
     else    
         info->ssidref = ACM_DEFAULT_SSID;
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/include/asm-x86/hvm/support.h
--- a/xen/include/asm-x86/hvm/support.h Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/include/asm-x86/hvm/support.h Fri Nov 03 10:52:29 2006 +0000
@@ -31,9 +31,6 @@
 #else
 #define HVM_DEBUG 1
 #endif
-
-#define is_hvm_domain(d) ((d)->is_hvm)
-#define is_hvm_vcpu(v)   (is_hvm_domain(v->domain))
 
 static inline shared_iopage_t *get_sp(struct domain *d)
 {
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/include/public/arch-x86_32.h
--- a/xen/include/public/arch-x86_32.h  Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/include/public/arch-x86_32.h  Fri Nov 03 10:52:29 2006 +0000
@@ -172,12 +172,9 @@ struct vcpu_guest_context {
     /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */
     struct { char x[512]; } fpu_ctxt;       /* User-level FPU registers     */
 #define VGCF_I387_VALID                (1<<0)
-#define VGCF_HVM_GUEST                 (1<<1)
 #define VGCF_IN_KERNEL                 (1<<2)
 #define _VGCF_i387_valid               0
 #define VGCF_i387_valid                (1<<_VGCF_i387_valid)
-#define _VGCF_hvm_guest                1
-#define VGCF_hvm_guest                 (1<<_VGCF_hvm_guest)
 #define _VGCF_in_kernel                2
 #define VGCF_in_kernel                 (1<<_VGCF_in_kernel)
 #define _VGCF_failsafe_disables_events 3
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/include/public/arch-x86_64.h
--- a/xen/include/public/arch-x86_64.h  Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/include/public/arch-x86_64.h  Fri Nov 03 10:52:29 2006 +0000
@@ -245,12 +245,9 @@ struct vcpu_guest_context {
     /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */
     struct { char x[512]; } fpu_ctxt;       /* User-level FPU registers     */
 #define VGCF_I387_VALID                (1<<0)
-#define VGCF_HVM_GUEST                 (1<<1)
 #define VGCF_IN_KERNEL                 (1<<2)
 #define _VGCF_i387_valid               0
 #define VGCF_i387_valid                (1<<_VGCF_i387_valid)
-#define _VGCF_hvm_guest                1
-#define VGCF_hvm_guest                 (1<<_VGCF_hvm_guest)
 #define _VGCF_in_kernel                2
 #define VGCF_in_kernel                 (1<<_VGCF_in_kernel)
 #define _VGCF_failsafe_disables_events 3
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/include/public/domctl.h
--- a/xen/include/public/domctl.h       Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/include/public/domctl.h       Fri Nov 03 10:52:29 2006 +0000
@@ -32,6 +32,7 @@ struct xen_domctl_createdomain {
     /* IN parameters */
     uint32_t ssidref;
     xen_domain_handle_t handle;
+ /* Is this an HVM guest (as opposed to a PV guest)? */
 #define _XEN_DOMCTL_CDF_hvm_guest 0
 #define XEN_DOMCTL_CDF_hvm_guest  (1U<<_XEN_DOMCTL_CDF_hvm_guest)
     uint32_t flags;
@@ -47,22 +48,37 @@ struct xen_domctl_getdomaininfo {
 struct xen_domctl_getdomaininfo {
     /* OUT variables. */
     domid_t  domain;              /* Also echoed in domctl.domain */
-#define DOMFLAGS_DYING     (1<<0) /* Domain is scheduled to die.             */
-#define DOMFLAGS_SHUTDOWN  (1<<2) /* The guest OS has shut down.             */
-#define DOMFLAGS_PAUSED    (1<<3) /* Currently paused by control software.   */
-#define DOMFLAGS_BLOCKED   (1<<4) /* Currently blocked pending an event.     */
-#define DOMFLAGS_RUNNING   (1<<5) /* Domain is currently running.            */
-#define DOMFLAGS_CPUMASK      255 /* CPU to which this domain is bound.      */
-#define DOMFLAGS_CPUSHIFT       8
-#define DOMFLAGS_SHUTDOWNMASK 255 /* DOMFLAGS_SHUTDOWN guest-supplied code.  */
-#define DOMFLAGS_SHUTDOWNSHIFT 16
-    uint32_t flags;
+ /* Domain is scheduled to die. */
+#define _XEN_DOMINF_dying     0
+#define XEN_DOMINF_dying      (1U<<_XEN_DOMINF_dying)
+ /* Domain is an HVM guest (as opposed to a PV guest). */
+#define _XEN_DOMINF_hvm_guest 1
+#define XEN_DOMINF_hvm_guest  (1U<<_XEN_DOMINF_hvm_guest)
+ /* The guest OS has shut down. */
+#define _XEN_DOMINF_shutdown  2
+#define XEN_DOMINF_shutdown   (1U<<_XEN_DOMINF_shutdown)
+ /* Currently paused by control software. */
+#define _XEN_DOMINF_paused    3
+#define XEN_DOMINF_paused     (1U<<_XEN_DOMINF_paused)
+ /* Currently blocked pending an event.     */
+#define _XEN_DOMINF_blocked   4
+#define XEN_DOMINF_blocked    (1U<<_XEN_DOMINF_blocked)
+ /* Domain is currently running.            */
+#define _XEN_DOMINF_running   5
+#define XEN_DOMINF_running    (1U<<_XEN_DOMINF_running)
+ /* CPU to which this domain is bound.      */
+#define XEN_DOMINF_cpumask      255
+#define XEN_DOMINF_cpushift       8
+ /* XEN_DOMINF_shutdown guest-supplied code.  */
+#define XEN_DOMINF_shutdownmask 255
+#define XEN_DOMINF_shutdownshift 16
+    uint32_t flags;              /* XEN_DOMINF_* */
     uint64_t tot_pages;
     uint64_t max_pages;
     uint64_t shared_info_frame;  /* MFN of shared_info struct */
     uint64_t cpu_time;
-    uint32_t nr_online_vcpus;     /* Number of VCPUs currently online. */
-    uint32_t max_vcpu_id;         /* Maximum VCPUID in use by this domain. */
+    uint32_t nr_online_vcpus;    /* Number of VCPUs currently online. */
+    uint32_t max_vcpu_id;        /* Maximum VCPUID in use by this domain. */
     uint32_t ssidref;
     xen_domain_handle_t handle;
 };
diff -r 4ff83eddd1f6 -r cfb1136ee8f7 xen/include/xen/sched.h
--- a/xen/include/xen/sched.h   Fri Nov 03 10:41:20 2006 +0000
+++ b/xen/include/xen/sched.h   Fri Nov 03 10:52:29 2006 +0000
@@ -461,6 +461,9 @@ static inline void vcpu_unblock(struct v
 
 #define VM_ASSIST(_d,_t) (test_bit((_t), &(_d)->vm_assist))
 
+#define is_hvm_domain(d) ((d)->is_hvm)
+#define is_hvm_vcpu(v)   (is_hvm_domain(v->domain))
+
 #endif /* __SCHED_H__ */
 
 /*

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.