diff --git a/ChangeLog b/ChangeLog index 845dee4548..a207e61bf9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Fri Oct 10 11:17:59 CEST 2008 Daniel Veillard + + * include/libvirt/libvirt.h[.in] include/libvirt/virterror.h + qemud/remote* src/driver.h src/libvirt.c src/libvirt_sym.version + src/lxc_driver.c src/openvz_driver.c src/proxy_internal.c + src/qemu_driver.c src/remote_internal.c src/test.c src/virsh.c + src/xen_internal.c src/xen_unified.c src/xen_unified.h + src/xend_internal.c src/xend_internal.h src/xm_internal.c + src/xs_internal.c docs/*: cleanup virDomainCreateLinux into + virDomainDefineXML, and a few additional cleanups + Fri Oct 10 10:33:29 CEST 2008 Daniel Veillard * src/domain_conf.c src/util.c: fix index creation for disks > diff --git a/docs/devhelp/libvirt-libvirt.html b/docs/devhelp/libvirt-libvirt.html index e9c091d2c2..8cf657568d 100644 --- a/docs/devhelp/libvirt-libvirt.html +++ b/docs/devhelp/libvirt-libvirt.html @@ -141,6 +141,7 @@ int virDomainCreate (virConnectListDomains (virConnectPtr conn,
int * ids,
int maxids); int virDomainCoreDump (virDomainPtr domain,
const char * to,
int flags); int virDomainSetMemory (virDomainPtr domain,
unsigned long memory); +int virStoragePoolCreate (virStoragePoolPtr pool,
unsigned int flags); int virNodeGetInfo (virConnectPtr conn,
virNodeInfoPtr info); int virNetworkSetAutostart (virNetworkPtr network,
int autostart); unsigned long virDomainGetMaxMemory (virDomainPtr domain); @@ -212,7 +213,7 @@ int virDomainGetUUIDString (virConnectPtr virDomainGetConnect (virDomainPtr dom); int virConnectNumOfDefinedStoragePools (virConnectPtr conn); virConnectPtr virConnectOpen (const char * name); -int virStoragePoolCreate (virStoragePoolPtr pool,
unsigned int flags); +virDomainPtr virDomainCreateXML (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags); int virDomainSetVcpus (virDomainPtr domain,
unsigned int nvcpus); unsigned int virDomainGetID (virDomainPtr domain); int virDomainBlockPeek (virDomainPtr dom,
const char * path,
unsigned long long offset,
size_t size,
void * buffer,
unsigned int flags); @@ -694,7 +695,11 @@ The content of this structure is not made public by the API.
domain:pointer to a defined domain
Returns:0 in case of success, -1 in case of error

virDomainCreateLinux ()

virDomainPtr	virDomainCreateLinux	(virConnectPtr conn, 
const char * xmlDesc,
unsigned int flags)
-

Launch a new Linux guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires privileged access to the hypervisor. The domain is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted (see virDomainDefineXML() to define persistent domains).

+

Deprecated after 0.4.6. Renamed to virDomainCreateXML() providing identical functionality. This existing name will left indefinitely for API compatability.

+
conn:pointer to the hypervisor connection
xmlDesc:string containing an XML description of the domain
flags:callers should always pass 0
Returns:a new domain object or NULL in case of failure
+
+

virDomainCreateXML ()

virDomainPtr	virDomainCreateXML	(virConnectPtr conn, 
const char * xmlDesc,
unsigned int flags)
+

Launch a new guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires privileged access to the hypervisor. The domain is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted (see virDomainDefineXML() to define persistent domains).

conn:pointer to the hypervisor connection
xmlDesc:string containing an XML description of the domain
flags:callers should always pass 0
Returns:a new domain object or NULL in case of failure

virDomainDefineXML ()

virDomainPtr	virDomainDefineXML	(virConnectPtr conn, 
const char * xml)
@@ -766,7 +771,7 @@ The content of this structure is not made public by the API.
domain:pointer to domain object, or NULL for Domain0
info:pointer to an array of virVcpuInfo structures (OUT)
maxinfo:number of structures in info array
cpumaps:pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cpumap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.
maplen:number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).
Returns:the number of info filled in case of success, -1 in case of failure.

virDomainGetXMLDesc ()

char *	virDomainGetXMLDesc		(virDomainPtr domain, 
int flags)
-

Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().

+

Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateXML().

domain:a domain object
flags:an OR'ed set of virDomainXMLFlags
Returns:a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.

virDomainInterfaceStats ()

int	virDomainInterfaceStats		(virDomainPtr dom, 
const char * path,
virDomainInterfaceStatsPtr stats,
size_t size)
diff --git a/docs/devhelp/libvirt-virterror.html b/docs/devhelp/libvirt-virterror.html index 3e04230dfe..096bd3e4ac 100644 --- a/docs/devhelp/libvirt-virterror.html +++ b/docs/devhelp/libvirt-virterror.html @@ -67,14 +67,14 @@ void virConnResetLastError (virErrorLevel level : how consequent is the error - virConnectPtr conn : connection if available, see note above - virDomainPtr dom : domain if available, see note above + virConnectPtr conn : connection if available, deprecated see note above + virDomainPtr dom : domain if available, deprecated see note above char * str1 : extra string information char * str2 : extra string information char * str3 : extra string information int int1 : extra number information int int2 : extra number information - virNetworkPtr net : network if available, see note above + virNetworkPtr net : network if available, deprecated see note above } virError;

diff --git a/docs/html/libvirt-libvirt.html b/docs/html/libvirt-libvirt.html index 231bc49dee..edaec1590a 100644 --- a/docs/html/libvirt-libvirt.html +++ b/docs/html/libvirt-libvirt.html @@ -90,6 +90,7 @@ int virDomainBlockStats (virDomainCoreDump (virDomainPtr domain,
const char * to,
int flags) int virDomainCreate (virDomainPtr domain) virDomainPtr virDomainCreateLinux (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags) +virDomainPtr virDomainCreateXML (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags) virDomainPtr virDomainDefineXML (virConnectPtr conn,
const char * xml) int virDomainDestroy (virDomainPtr domain) int virDomainDetachDevice (virDomainPtr domain,
const char * xml) @@ -288,7 +289,8 @@ char * virStorageVolGetXMLDesc (

This function returns block device (disk) stats for block devices attached to the domain. The path parameter is the name of the block device. Get this by calling virDomainGetXMLDesc and finding the <target dev='...'> attribute within //domain/devices/disk. (For example, "xvda"). Domains may have more than one block device. To get stats for each you should make multiple calls to this function. Individual fields within the stats structure may be returned as -1, which indicates that the hypervisor does not support that particular statistic.

dom:pointer to the domain object
path:path to the block device
stats:block device stats (returned)
size:size of stats structure
Returns:0 in case of success or -1 in case of failure.

virDomainCoreDump

int	virDomainCoreDump		(virDomainPtr domain, 
const char * to,
int flags)

This method will dump the core of a domain on a given file for analysis. Note that for remote Xen Daemon the file path will be interpreted in the remote host.

domain:a domain object
to:path for the core file
flags:extra flags, currently unused
Returns:0 in case of success and -1 in case of failure.

virDomainCreate

int	virDomainCreate			(virDomainPtr domain)

launch a defined domain. If the call succeed the domain moves from the defined to the running domains pools.

domain:pointer to a defined domain
Returns:0 in case of success, -1 in case of error

virDomainCreateLinux

virDomainPtr	virDomainCreateLinux	(virConnectPtr conn, 
const char * xmlDesc,
unsigned int flags)
-

Launch a new Linux guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires privileged access to the hypervisor. The domain is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted (see virDomainDefineXML() to define persistent domains).

conn:pointer to the hypervisor connection
xmlDesc:string containing an XML description of the domain
flags:callers should always pass 0
Returns:a new domain object or NULL in case of failure

virDomainDefineXML

virDomainPtr	virDomainDefineXML	(virConnectPtr conn, 
const char * xml)
+

Deprecated after 0.4.6. Renamed to virDomainCreateXML() providing identical functionality. This existing name will left indefinitely for API compatability.

conn:pointer to the hypervisor connection
xmlDesc:string containing an XML description of the domain
flags:callers should always pass 0
Returns:a new domain object or NULL in case of failure

virDomainCreateXML

virDomainPtr	virDomainCreateXML	(virConnectPtr conn, 
const char * xmlDesc,
unsigned int flags)
+

Launch a new guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires privileged access to the hypervisor. The domain is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted (see virDomainDefineXML() to define persistent domains).

conn:pointer to the hypervisor connection
xmlDesc:string containing an XML description of the domain
flags:callers should always pass 0
Returns:a new domain object or NULL in case of failure

virDomainDefineXML

virDomainPtr	virDomainDefineXML	(virConnectPtr conn, 
const char * xml)

Define a domain, but does not start it. This definition is persistent, until explicitly undefined with virDomainUndefine().

conn:pointer to the hypervisor connection
xml:the XML description for the domain, preferably in UTF-8
Returns:NULL in case of error, a pointer to the domain otherwise

virDomainDestroy

int	virDomainDestroy		(virDomainPtr domain)

Destroy the domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor. This does not free the associated virDomainPtr object. This function may require privileged access

domain:a domain object
Returns:0 in case of success and -1 in case of failure.

virDomainDetachDevice

int	virDomainDetachDevice		(virDomainPtr domain, 
const char * xml)

Destroy a virtual device attachment to backend.

domain:pointer to domain object
xml:pointer to XML description of one device
Returns:0 in case of success, -1 in case of failure.

virDomainFree

int	virDomainFree			(virDomainPtr domain)
@@ -306,7 +308,7 @@ char * virStorageVolGetXMLDesc (

Get the UUID for a domain

domain:a domain object
uuid:pointer to a VIR_UUID_BUFLEN bytes array
Returns:-1 in case of error, 0 in case of success

virDomainGetUUIDString

int	virDomainGetUUIDString		(virDomainPtr domain, 
char * buf)

Get the UUID for a domain as string. For more information about UUID see RFC4122.

domain:a domain object
buf:pointer to a VIR_UUID_STRING_BUFLEN bytes array
Returns:-1 in case of error, 0 in case of success

virDomainGetVcpus

int	virDomainGetVcpus		(virDomainPtr domain, 
virVcpuInfoPtr info,
int maxinfo,
unsigned char * cpumaps,
int maplen)

Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer isn't NULL.

domain:pointer to domain object, or NULL for Domain0
info:pointer to an array of virVcpuInfo structures (OUT)
maxinfo:number of structures in info array
cpumaps:pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cpumap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.
maplen:number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).
Returns:the number of info filled in case of success, -1 in case of failure.

virDomainGetXMLDesc

char *	virDomainGetXMLDesc		(virDomainPtr domain, 
int flags)
-

Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().

domain:a domain object
flags:an OR'ed set of virDomainXMLFlags
Returns:a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.

virDomainInterfaceStats

int	virDomainInterfaceStats		(virDomainPtr dom, 
const char * path,
virDomainInterfaceStatsPtr stats,
size_t size)
+

Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateXML().

domain:a domain object
flags:an OR'ed set of virDomainXMLFlags
Returns:a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.

virDomainInterfaceStats

int	virDomainInterfaceStats		(virDomainPtr dom, 
const char * path,
virDomainInterfaceStatsPtr stats,
size_t size)

This function returns network interface stats for interfaces attached to the domain. The path parameter is the name of the network interface. Domains may have more than network interface. To get stats for each you should make multiple calls to this function. Individual fields within the stats structure may be returned as -1, which indicates that the hypervisor does not support that particular statistic.

dom:pointer to the domain object
path:path to the interface
stats:network interface stats (returned)
size:size of stats structure
Returns:0 in case of success or -1 in case of failure.

virDomainLookupByID

virDomainPtr	virDomainLookupByID	(virConnectPtr conn, 
int id)

Try to find a domain based on the hypervisor ID number Note that this won't work for inactive domains which have an ID of -1, in that case a lookup based on the Name or UUId need to be done instead.

conn:pointer to the hypervisor connection
id:the domain ID number
Returns:a new domain object or NULL in case of failure. If the domain cannot be found, then VIR_ERR_NO_DOMAIN error is raised.

virDomainLookupByName

virDomainPtr	virDomainLookupByName	(virConnectPtr conn, 
const char * name)

Try to lookup a domain on the given hypervisor based on its name.

conn:pointer to the hypervisor connection
name:name for the domain
Returns:a new domain object or NULL in case of failure. If the domain cannot be found, then VIR_ERR_NO_DOMAIN error is raised.

virDomainLookupByUUID

virDomainPtr	virDomainLookupByUUID	(virConnectPtr conn, 
const unsigned char * uuid)
diff --git a/docs/html/libvirt-virterror.html b/docs/html/libvirt-virterror.html index e355078271..7d56e65c37 100644 --- a/docs/html/libvirt-virterror.html +++ b/docs/html/libvirt-virterror.html @@ -22,7 +22,7 @@ void virResetError (virResetLastError (void) void virSetErrorFunc (void * userData,
virErrorFunc handler)

Description

Types

virError

struct virError{
-
intcode : The error code, a virErrorNumber
intdomain : What part of the library raised this error
char *message : human-readable informative error message
virErrorLevellevel : how consequent is the error
virConnectPtrconn : connection if available, see note above
virDomainPtrdom : domain if available, see note above
char *str1 : extra string information
char *str2 : extra string information
char *str3 : extra string information
intint1 : extra number information
intint2 : extra number information
virNetworkPtrnet : network if available, see note above
+
intcode : The error code, a virErrorNumber
intdomain : What part of the library raised this error
char *message : human-readable informative error message
virErrorLevellevel : how consequent is the error
virConnectPtrconn : connection if available, deprecated see note above
virDomainPtrdom : domain if available, deprecated see note above
char *str1 : extra string information
char *str2 : extra string information
char *str3 : extra string information
intint1 : extra number information
intint2 : extra number information
virNetworkPtrnet : network if available, deprecated see note above
 }
 

virErrorDomain

enum virErrorDomain {
 
VIR_FROM_NONE = 0
VIR_FROM_XEN = 1 : Error at Xen hypervisor layer
VIR_FROM_XEND = 2 : Error at connection with xend daemon
VIR_FROM_XENSTORE = 3 : Error at connection with xen store
VIR_FROM_SEXPR = 4 : Error in the S-Expression code
VIR_FROM_XML = 5 : Error in the XML code
VIR_FROM_DOM = 6 : Error when operating on a domain
VIR_FROM_RPC = 7 : Error in the XML-RPC code
VIR_FROM_PROXY = 8 : Error in the proxy code
VIR_FROM_CONF = 9 : Error in the configuration file handling
VIR_FROM_QEMU = 10 : Error at the QEMU daemon
VIR_FROM_NET = 11 : Error when operating on a network
VIR_FROM_TEST = 12 : Error from test driver
VIR_FROM_REMOTE = 13 : Error from remote driver
VIR_FROM_OPENVZ = 14 : Error from OpenVZ driver
VIR_FROM_XENXM = 15 : Error at Xen XM layer
VIR_FROM_STATS_LINUX = 16 : Error in the Linux Stats code
VIR_FROM_LXC = 17 : Error from Linux Container driver
VIR_FROM_STORAGE = 18 : Error from storage driver
VIR_FROM_NETWORK = 19 : Error from network config
VIR_FROM_DOMAIN = 20 : Error from domain config
}
diff --git a/docs/libvirt-api.xml b/docs/libvirt-api.xml
index 71182968eb..d45049076c 100644
--- a/docs/libvirt-api.xml
+++ b/docs/libvirt-api.xml
@@ -163,6 +163,7 @@
      
      
      
+     
      
      
      
@@ -234,7 +235,7 @@
      
      
      
-     
+     
      
      
      
@@ -578,15 +579,17 @@
       
       
       
-      
+      
-      
       
       
       
       
       
-      
+      
     
     
     
@@ -863,7 +866,14 @@ see note above'/>
       
     
     
-      Launch a new Linux guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires privileged access to the hypervisor. The domain is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted (see virDomainDefineXML() to define persistent domains).
+      Deprecated after 0.4.6. Renamed to virDomainCreateXML() providing identical functionality. This existing name will left indefinitely for API compatability.
+      
+      
+      
+      
+    
+    
+      Launch a new guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires privileged access to the hypervisor. The domain is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted (see virDomainDefineXML() to define persistent domains).
       
       
       
@@ -968,7 +978,7 @@ see note above'/>
       
     
     
-      Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().
+      Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateXML().
       
       
       
diff --git a/docs/libvirt-refs.xml b/docs/libvirt-refs.xml
index 65576efc56..710c0b2b81 100644
--- a/docs/libvirt-refs.xml
+++ b/docs/libvirt-refs.xml
@@ -191,6 +191,7 @@
     
     
     
+    
     
     
     
@@ -527,6 +528,7 @@
       
       
       
+      
       
       
       
@@ -687,6 +689,7 @@
     
     
       
+      
       
       
       
@@ -760,6 +763,7 @@
       
       
       
+      
       
       
       
@@ -823,6 +827,7 @@
       
       
       
+      
       
       
       
@@ -1086,6 +1091,7 @@
       
       
       
+      
       
       
       
@@ -1318,6 +1324,7 @@
           
           
           
+          
           
         
         
@@ -1436,6 +1443,9 @@
         
           
         
+        
+          
+        
         
           
           
@@ -1570,13 +1580,12 @@
       
       
         
-          
+          
         
         
           
         
         
-          
           
         
         
@@ -1713,6 +1722,9 @@
         
           
         
+        
+          
+        
         
           
         
@@ -1903,6 +1915,7 @@
           
           
           
+          
           
           
           
@@ -1943,7 +1956,7 @@
         
           
           
-          
+          
           
           
           
@@ -1989,6 +2002,7 @@
         
         
           
+          
           
           
           
@@ -2049,6 +2063,7 @@
         
           
           
+          
         
         
           
@@ -2207,7 +2222,7 @@
           
         
         
-          
+          
           
           
           
@@ -2375,6 +2390,7 @@
         
         
           
+          
         
         
           
@@ -2479,6 +2495,9 @@
         
           
         
+        
+          
+        
         
           
         
@@ -2526,6 +2545,7 @@
         
           
           
+          
         
         
           
@@ -2647,7 +2667,7 @@
           
         
         
-          
+          
         
         
           
@@ -2661,13 +2681,16 @@
           
         
         
-          
+          
           
           
         
         
           
         
+        
+          
+        
         
           
         
@@ -2678,6 +2701,7 @@
         
           
           
+          
           
           
           
@@ -2695,7 +2719,7 @@
           
         
         
-          
+          
           
           
         
@@ -2727,7 +2751,7 @@
           
         
         
-          
+          
           
         
         
@@ -2784,7 +2808,7 @@
           
           
           
-          
+          
           
           
         
@@ -2865,6 +2889,9 @@
         
           
         
+        
+          
+        
         
           
         
@@ -3083,7 +3110,7 @@
           
           
           
-          
+          
           
           
           
@@ -3104,6 +3131,9 @@
         
           
         
+        
+          
+        
         
           
           
@@ -3176,7 +3206,7 @@
         
         
           
-          
+          
           
           
           
@@ -3222,7 +3252,7 @@
         
           
           
-          
+          
           
           
           
@@ -3267,6 +3297,9 @@
         
           
         
+        
+          
+        
         
           
           
@@ -3308,6 +3341,9 @@
           
           
         
+        
+          
+        
         
           
         
@@ -3394,7 +3430,7 @@
           
         
         
-          
+          
           
           
           
@@ -3496,6 +3532,9 @@
           
           
         
+        
+          
+        
         
           
           
@@ -3809,6 +3848,7 @@
           
           
           
+          
           
           
           
@@ -3862,6 +3902,7 @@
         
         
           
+          
           
           
           
@@ -3939,7 +3980,7 @@
           
           
           
-          
+          
           
           
           
@@ -4056,6 +4097,7 @@
           
           
           
+          
           
           
         
@@ -4092,7 +4134,7 @@
           
         
         
-          
+          
           
           
           
@@ -4149,7 +4191,7 @@
         
         
           
-          
+          
           
           
           
@@ -4189,6 +4231,7 @@
         
           
           
+          
         
         
           
@@ -4332,7 +4375,7 @@
           
         
         
-          
+          
           
           
           
@@ -4364,7 +4407,7 @@
           
         
         
-          
+          
           
           
           
@@ -4397,7 +4440,7 @@
           
           
           
-          
+          
           
           
           
@@ -4489,7 +4532,7 @@
         
         
           
-          
+          
           
           
           
@@ -4523,6 +4566,7 @@
           
           
           
+          
           
           
           
@@ -4549,7 +4593,7 @@
         
         
           
-          
+          
           
         
         
@@ -4695,6 +4739,7 @@
           
           
           
+          
           
           
           
@@ -5111,11 +5156,12 @@
         
           
         
-        
+        
+          
           
         
         
-          
+          
         
         
           
@@ -5135,7 +5181,7 @@
         
           
           
-          
+          
         
         
           
@@ -5280,7 +5326,7 @@
           
         
         
-          
+          
           
           
           
@@ -5334,31 +5380,6 @@
         
           
         
-        
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-          
-        
         
           
           
diff --git a/include/libvirt/libvirt.h b/include/libvirt/libvirt.h
index d519452060..35b80d033c 100644
--- a/include/libvirt/libvirt.h
+++ b/include/libvirt/libvirt.h
@@ -437,7 +437,7 @@ virConnectPtr           virDomainGetConnect     (virDomainPtr domain);
 /*
  * Domain creation and destruction
  */
-virDomainPtr            virDomainCreateLinux    (virConnectPtr conn,
+virDomainPtr            virDomainCreateXML      (virConnectPtr conn,
                                                  const char *xmlDesc,
                                                  unsigned int flags);
 virDomainPtr            virDomainLookupByName   (virConnectPtr conn,
@@ -987,6 +987,12 @@ char *                  virStorageVolGetXMLDesc         (virStorageVolPtr pool,
 
 char *                  virStorageVolGetPath            (virStorageVolPtr vol);
 
+/*
+ * Deprecated calls
+ */
+virDomainPtr            virDomainCreateLinux    (virConnectPtr conn,
+                                                 const char *xmlDesc,
+                                                 unsigned int flags);
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 24b56802e0..3624367480 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -437,7 +437,7 @@ virConnectPtr           virDomainGetConnect     (virDomainPtr domain);
 /*
  * Domain creation and destruction
  */
-virDomainPtr            virDomainCreateLinux    (virConnectPtr conn,
+virDomainPtr            virDomainCreateXML      (virConnectPtr conn,
                                                  const char *xmlDesc,
                                                  unsigned int flags);
 virDomainPtr            virDomainLookupByName   (virConnectPtr conn,
@@ -987,6 +987,12 @@ char *                  virStorageVolGetXMLDesc         (virStorageVolPtr pool,
 
 char *                  virStorageVolGetPath            (virStorageVolPtr vol);
 
+/*
+ * Deprecated calls
+ */
+virDomainPtr            virDomainCreateLinux    (virConnectPtr conn,
+                                                 const char *xmlDesc,
+                                                 unsigned int flags);
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/libvirt/virterror.h b/include/libvirt/virterror.h
index 28a97462ef..8e24708e96 100644
--- a/include/libvirt/virterror.h
+++ b/include/libvirt/virterror.h
@@ -78,15 +78,17 @@ struct _virError {
     int		domain;	/* What part of the library raised this error */
     char       *message;/* human-readable informative error message */
     virErrorLevel level;/* how consequent is the error */
-    virConnectPtr conn VIR_DEPRECATED; /* connection if available,
+    virConnectPtr conn VIR_DEPRECATED; /* connection if available, deprecated
                                           see note above */
-    virDomainPtr dom VIR_DEPRECATED; /* domain if available, see note above */
+    virDomainPtr dom VIR_DEPRECATED; /* domain if available, deprecated
+                                        see note above */
     char       *str1;	/* extra string information */
     char       *str2;	/* extra string information */
     char       *str3;	/* extra string information */
     int		int1;	/* extra number information */
     int		int2;	/* extra number information */
-    virNetworkPtr net VIR_DEPRECATED; /* network if available, see note above */
+    virNetworkPtr net VIR_DEPRECATED; /* network if available, deprecated
+                                         see note above */
 };
 
 /**
diff --git a/qemud/remote.c b/qemud/remote.c
index 8acd95dc27..72e064efbb 100644
--- a/qemud/remote.c
+++ b/qemud/remote.c
@@ -1028,16 +1028,16 @@ remoteDispatchDomainCreate (struct qemud_server *server ATTRIBUTE_UNUSED,
 }
 
 static int
-remoteDispatchDomainCreateLinux (struct qemud_server *server ATTRIBUTE_UNUSED,
+remoteDispatchDomainCreateXml (struct qemud_server *server ATTRIBUTE_UNUSED,
                                  struct qemud_client *client,
                                  remote_message_header *req,
-                                 remote_domain_create_linux_args *args,
-                                 remote_domain_create_linux_ret *ret)
+                                 remote_domain_create_xml_args *args,
+                                 remote_domain_create_xml_ret *ret)
 {
     virDomainPtr dom;
     CHECK_CONN(client);
 
-    dom = virDomainCreateLinux (client->conn, args->xml_desc, args->flags);
+    dom = virDomainCreateXML (client->conn, args->xml_desc, args->flags);
     if (dom == NULL) return -1;
 
     make_nonnull_domain (&ret->dom, dom);
diff --git a/qemud/remote_dispatch_localvars.h b/qemud/remote_dispatch_localvars.h
index 18d71e9a19..f46b493779 100644
--- a/qemud/remote_dispatch_localvars.h
+++ b/qemud/remote_dispatch_localvars.h
@@ -49,8 +49,6 @@ remote_network_dump_xml_ret lv_remote_network_dump_xml_ret;
 remote_domain_reboot_args lv_remote_domain_reboot_args;
 remote_domain_set_memory_args lv_remote_domain_set_memory_args;
 remote_storage_pool_destroy_args lv_remote_storage_pool_destroy_args;
-remote_domain_create_linux_args lv_remote_domain_create_linux_args;
-remote_domain_create_linux_ret lv_remote_domain_create_linux_ret;
 remote_domain_set_scheduler_parameters_args lv_remote_domain_set_scheduler_parameters_args;
 remote_auth_polkit_ret lv_remote_auth_polkit_ret;
 remote_auth_sasl_start_args lv_remote_auth_sasl_start_args;
@@ -103,6 +101,8 @@ remote_num_of_storage_pools_ret lv_remote_num_of_storage_pools_ret;
 remote_domain_save_args lv_remote_domain_save_args;
 remote_domain_migrate_prepare_args lv_remote_domain_migrate_prepare_args;
 remote_domain_migrate_prepare_ret lv_remote_domain_migrate_prepare_ret;
+remote_domain_create_xml_args lv_remote_domain_create_xml_args;
+remote_domain_create_xml_ret lv_remote_domain_create_xml_ret;
 remote_domain_undefine_args lv_remote_domain_undefine_args;
 remote_node_get_cells_free_memory_args lv_remote_node_get_cells_free_memory_args;
 remote_node_get_cells_free_memory_ret lv_remote_node_get_cells_free_memory_ret;
diff --git a/qemud/remote_dispatch_proc_switch.h b/qemud/remote_dispatch_proc_switch.h
index 767b142bdc..89296d7004 100644
--- a/qemud/remote_dispatch_proc_switch.h
+++ b/qemud/remote_dispatch_proc_switch.h
@@ -77,14 +77,14 @@ case REMOTE_PROC_DOMAIN_CREATE:
         args = (char *) &lv_remote_domain_create_args;
         memset (&lv_remote_domain_create_args, 0, sizeof lv_remote_domain_create_args);
         break;
-case REMOTE_PROC_DOMAIN_CREATE_LINUX:
-        fn = (dispatch_fn) remoteDispatchDomainCreateLinux;
-        args_filter = (xdrproc_t) xdr_remote_domain_create_linux_args;
-        args = (char *) &lv_remote_domain_create_linux_args;
-        memset (&lv_remote_domain_create_linux_args, 0, sizeof lv_remote_domain_create_linux_args);
-        ret_filter = (xdrproc_t) xdr_remote_domain_create_linux_ret;
-        ret = (char *) &lv_remote_domain_create_linux_ret;
-        memset (&lv_remote_domain_create_linux_ret, 0, sizeof lv_remote_domain_create_linux_ret);
+case REMOTE_PROC_DOMAIN_CREATE_XML:
+        fn = (dispatch_fn) remoteDispatchDomainCreateXml;
+        args_filter = (xdrproc_t) xdr_remote_domain_create_xml_args;
+        args = (char *) &lv_remote_domain_create_xml_args;
+        memset (&lv_remote_domain_create_xml_args, 0, sizeof lv_remote_domain_create_xml_args);
+        ret_filter = (xdrproc_t) xdr_remote_domain_create_xml_ret;
+        ret = (char *) &lv_remote_domain_create_xml_ret;
+        memset (&lv_remote_domain_create_xml_ret, 0, sizeof lv_remote_domain_create_xml_ret);
         break;
 case REMOTE_PROC_DOMAIN_DEFINE_XML:
         fn = (dispatch_fn) remoteDispatchDomainDefineXml;
diff --git a/qemud/remote_dispatch_prototypes.h b/qemud/remote_dispatch_prototypes.h
index 950ad05653..3f4eb9fd12 100644
--- a/qemud/remote_dispatch_prototypes.h
+++ b/qemud/remote_dispatch_prototypes.h
@@ -13,7 +13,7 @@ static int remoteDispatchDomainBlockPeek (struct qemud_server *server, struct qe
 static int remoteDispatchDomainBlockStats (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_block_stats_args *args, remote_domain_block_stats_ret *ret);
 static int remoteDispatchDomainCoreDump (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_core_dump_args *args, void *ret);
 static int remoteDispatchDomainCreate (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_create_args *args, void *ret);
-static int remoteDispatchDomainCreateLinux (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_create_linux_args *args, remote_domain_create_linux_ret *ret);
+static int remoteDispatchDomainCreateXml (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_create_xml_args *args, remote_domain_create_xml_ret *ret);
 static int remoteDispatchDomainDefineXml (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_define_xml_args *args, remote_domain_define_xml_ret *ret);
 static int remoteDispatchDomainDestroy (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_destroy_args *args, void *ret);
 static int remoteDispatchDomainDetachDevice (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_domain_detach_device_args *args, void *ret);
diff --git a/qemud/remote_protocol.c b/qemud/remote_protocol.c
index be1d6d8180..33a25e103f 100644
--- a/qemud/remote_protocol.c
+++ b/qemud/remote_protocol.c
@@ -618,7 +618,7 @@ xdr_remote_num_of_domains_ret (XDR *xdrs, remote_num_of_domains_ret *objp)
 }
 
 bool_t
-xdr_remote_domain_create_linux_args (XDR *xdrs, remote_domain_create_linux_args *objp)
+xdr_remote_domain_create_xml_args (XDR *xdrs, remote_domain_create_xml_args *objp)
 {
 
          if (!xdr_remote_nonnull_string (xdrs, &objp->xml_desc))
@@ -629,7 +629,7 @@ xdr_remote_domain_create_linux_args (XDR *xdrs, remote_domain_create_linux_args
 }
 
 bool_t
-xdr_remote_domain_create_linux_ret (XDR *xdrs, remote_domain_create_linux_ret *objp)
+xdr_remote_domain_create_xml_ret (XDR *xdrs, remote_domain_create_xml_ret *objp)
 {
 
          if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
diff --git a/qemud/remote_protocol.h b/qemud/remote_protocol.h
index bcaa219308..0bf8b79da4 100644
--- a/qemud/remote_protocol.h
+++ b/qemud/remote_protocol.h
@@ -318,16 +318,16 @@ struct remote_num_of_domains_ret {
 };
 typedef struct remote_num_of_domains_ret remote_num_of_domains_ret;
 
-struct remote_domain_create_linux_args {
+struct remote_domain_create_xml_args {
         remote_nonnull_string xml_desc;
         int flags;
 };
-typedef struct remote_domain_create_linux_args remote_domain_create_linux_args;
+typedef struct remote_domain_create_xml_args remote_domain_create_xml_args;
 
-struct remote_domain_create_linux_ret {
+struct remote_domain_create_xml_ret {
         remote_nonnull_domain dom;
 };
-typedef struct remote_domain_create_linux_ret remote_domain_create_linux_ret;
+typedef struct remote_domain_create_xml_ret remote_domain_create_xml_ret;
 
 struct remote_domain_lookup_by_id_args {
         int id;
@@ -1094,7 +1094,7 @@ enum remote_procedure {
         REMOTE_PROC_GET_CAPABILITIES = 7,
         REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8,
         REMOTE_PROC_DOMAIN_CREATE = 9,
-        REMOTE_PROC_DOMAIN_CREATE_LINUX = 10,
+        REMOTE_PROC_DOMAIN_CREATE_XML = 10,
         REMOTE_PROC_DOMAIN_DEFINE_XML = 11,
         REMOTE_PROC_DOMAIN_DESTROY = 12,
         REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13,
@@ -1264,8 +1264,8 @@ extern  bool_t xdr_remote_domain_memory_peek_ret (XDR *, remote_domain_memory_pe
 extern  bool_t xdr_remote_list_domains_args (XDR *, remote_list_domains_args*);
 extern  bool_t xdr_remote_list_domains_ret (XDR *, remote_list_domains_ret*);
 extern  bool_t xdr_remote_num_of_domains_ret (XDR *, remote_num_of_domains_ret*);
-extern  bool_t xdr_remote_domain_create_linux_args (XDR *, remote_domain_create_linux_args*);
-extern  bool_t xdr_remote_domain_create_linux_ret (XDR *, remote_domain_create_linux_ret*);
+extern  bool_t xdr_remote_domain_create_xml_args (XDR *, remote_domain_create_xml_args*);
+extern  bool_t xdr_remote_domain_create_xml_ret (XDR *, remote_domain_create_xml_ret*);
 extern  bool_t xdr_remote_domain_lookup_by_id_args (XDR *, remote_domain_lookup_by_id_args*);
 extern  bool_t xdr_remote_domain_lookup_by_id_ret (XDR *, remote_domain_lookup_by_id_ret*);
 extern  bool_t xdr_remote_domain_lookup_by_uuid_args (XDR *, remote_domain_lookup_by_uuid_args*);
@@ -1445,8 +1445,8 @@ extern bool_t xdr_remote_domain_memory_peek_ret ();
 extern bool_t xdr_remote_list_domains_args ();
 extern bool_t xdr_remote_list_domains_ret ();
 extern bool_t xdr_remote_num_of_domains_ret ();
-extern bool_t xdr_remote_domain_create_linux_args ();
-extern bool_t xdr_remote_domain_create_linux_ret ();
+extern bool_t xdr_remote_domain_create_xml_args ();
+extern bool_t xdr_remote_domain_create_xml_ret ();
 extern bool_t xdr_remote_domain_lookup_by_id_args ();
 extern bool_t xdr_remote_domain_lookup_by_id_ret ();
 extern bool_t xdr_remote_domain_lookup_by_uuid_args ();
diff --git a/qemud/remote_protocol.x b/qemud/remote_protocol.x
index f848ae5124..f1bd9ff549 100644
--- a/qemud/remote_protocol.x
+++ b/qemud/remote_protocol.x
@@ -371,12 +371,12 @@ struct remote_num_of_domains_ret {
     int num;
 };
 
-struct remote_domain_create_linux_args {
+struct remote_domain_create_xml_args {
     remote_nonnull_string xml_desc;
     int flags;
 };
 
-struct remote_domain_create_linux_ret {
+struct remote_domain_create_xml_ret {
     remote_nonnull_domain dom;
 };
 
@@ -981,7 +981,7 @@ enum remote_procedure {
     REMOTE_PROC_GET_CAPABILITIES = 7,
     REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8,
     REMOTE_PROC_DOMAIN_CREATE = 9,
-    REMOTE_PROC_DOMAIN_CREATE_LINUX = 10,
+    REMOTE_PROC_DOMAIN_CREATE_XML = 10,
 
     REMOTE_PROC_DOMAIN_DEFINE_XML = 11,
     REMOTE_PROC_DOMAIN_DESTROY = 12,
diff --git a/src/driver.h b/src/driver.h
index 655cd05d4c..0540f80b9e 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -103,7 +103,7 @@ typedef int
 typedef int
         (*virDrvNumOfDomains)		(virConnectPtr conn);
 typedef virDomainPtr
-        (*virDrvDomainCreateLinux)	(virConnectPtr conn,
+        (*virDrvDomainCreateXML)	(virConnectPtr conn,
                                          const char *xmlDesc,
                                          unsigned int flags);
 typedef virDomainPtr
@@ -309,7 +309,7 @@ struct _virDriver {
     virDrvGetCapabilities		getCapabilities;
     virDrvListDomains		listDomains;
     virDrvNumOfDomains		numOfDomains;
-    virDrvDomainCreateLinux		domainCreateLinux;
+    virDrvDomainCreateXML		domainCreateXML;
     virDrvDomainLookupByID		domainLookupByID;
     virDrvDomainLookupByUUID	domainLookupByUUID;
     virDrvDomainLookupByName	domainLookupByName;
diff --git a/src/libvirt.c b/src/libvirt.c
index e06e9f311a..10b577d560 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -1225,12 +1225,12 @@ virDomainGetConnect (virDomainPtr dom)
 }
 
 /**
- * virDomainCreateLinux:
+ * virDomainCreateXML:
  * @conn: pointer to the hypervisor connection
  * @xmlDesc: string containing an XML description of the domain
  * @flags: callers should always pass 0
  *
- * Launch a new Linux guest domain, based on an XML description similar
+ * Launch a new guest domain, based on an XML description similar
  * to the one returned by virDomainGetXMLDesc()
  * This function may requires privileged access to the hypervisor.
  * The domain is not persistent, so its definition will disappear when it
@@ -1240,8 +1240,8 @@ virDomainGetConnect (virDomainPtr dom)
  * Returns a new domain object or NULL in case of failure
  */
 virDomainPtr
-virDomainCreateLinux(virConnectPtr conn, const char *xmlDesc,
-                     unsigned int flags)
+virDomainCreateXML(virConnectPtr conn, const char *xmlDesc,
+                   unsigned int flags)
 {
     DEBUG("conn=%p, xmlDesc=%s, flags=%d", conn, xmlDesc, flags);
 
@@ -1258,13 +1258,31 @@ virDomainCreateLinux(virConnectPtr conn, const char *xmlDesc,
         return (NULL);
     }
 
-    if (conn->driver->domainCreateLinux)
-        return conn->driver->domainCreateLinux (conn, xmlDesc, flags);
+    if (conn->driver->domainCreateXML)
+        return conn->driver->domainCreateXML (conn, xmlDesc, flags);
 
     virLibConnError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
     return NULL;
 }
 
+/**
+ * virDomainCreateLinux:
+ * @conn: pointer to the hypervisor connection
+ * @xmlDesc: string containing an XML description of the domain
+ * @flags: callers should always pass 0
+ *
+ * Deprecated after 0.4.6.
+ * Renamed to virDomainCreateXML() providing identical functionality.
+ * This existing name will left indefinitely for API compatability.
+ *
+ * Returns a new domain object or NULL in case of failure
+ */
+virDomainPtr
+virDomainCreateLinux(virConnectPtr conn, const char *xmlDesc,
+                     unsigned int flags)
+{
+    return(virDomainCreateXML(conn, xmlDesc, flags));
+}
 
 /**
  * virDomainLookupByID:
@@ -2078,7 +2096,7 @@ virDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
  * @flags: an OR'ed set of virDomainXMLFlags
  *
  * Provide an XML description of the domain. The description may be reused
- * later to relaunch the domain with virDomainCreateLinux().
+ * later to relaunch the domain with virDomainCreateXML().
  *
  * Returns a 0 terminated UTF-8 encoded XML instance, or NULL in case of error.
  *         the caller must free() the returned value.
diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version
index b8c470c703..3cc4505bd3 100644
--- a/src/libvirt_sym.version
+++ b/src/libvirt_sym.version
@@ -16,6 +16,7 @@
 	virConnectNumOfDomains;
         virDomainCreate;
 	virDomainCreateLinux;
+	virDomainCreateXML;
         virDomainDefineXML;
 	virDomainDestroy;
 	virDomainFree;
diff --git a/src/lxc_driver.c b/src/lxc_driver.c
index 6f17fa3e95..4a2311e26f 100644
--- a/src/lxc_driver.c
+++ b/src/lxc_driver.c
@@ -1145,7 +1145,8 @@ static int lxcVersion(virConnectPtr conn, unsigned long *version)
     return 0;
 }
 
-static char *lxcGetSchedulerType(virDomainPtr domain ATTRIBUTE_UNUSED, int *nparams)
+static char *lxcGetSchedulerType(virDomainPtr domain ATTRIBUTE_UNUSED,
+                                 int *nparams)
 {
     if (nparams)
         *nparams = 1;
@@ -1251,7 +1252,7 @@ static virDriver lxcDriver = {
     NULL, /* getCapabilities */
     lxcListDomains, /* listDomains */
     lxcNumDomains, /* numOfDomains */
-    lxcDomainCreateAndStart, /* domainCreateLinux */
+    lxcDomainCreateAndStart, /* domainCreateXML */
     lxcDomainLookupByID, /* domainLookupByID */
     lxcDomainLookupByUUID, /* domainLookupByUUID */
     lxcDomainLookupByName, /* domainLookupByName */
diff --git a/src/openvz_driver.c b/src/openvz_driver.c
index f68841ee16..98033d9bc3 100644
--- a/src/openvz_driver.c
+++ b/src/openvz_driver.c
@@ -491,7 +491,7 @@ openvzDomainDefineXML(virConnectPtr conn, const char *xml)
 }
 
 static virDomainPtr
-openvzDomainCreateLinux(virConnectPtr conn, const char *xml,
+openvzDomainCreateXML(virConnectPtr conn, const char *xml,
                         unsigned int flags ATTRIBUTE_UNUSED)
 {
     virDomainDefPtr vmdef = NULL;
@@ -971,7 +971,7 @@ static virDriver openvzDriver = {
     openvzGetCapabilities, /* getCapabilities */
     openvzListDomains, /* listDomains */
     openvzNumDomains, /* numOfDomains */
-    openvzDomainCreateLinux, /* domainCreateLinux */
+    openvzDomainCreateXML, /* domainCreateXML */
     openvzDomainLookupByID, /* domainLookupByID */
     openvzDomainLookupByUUID, /* domainLookupByUUID */
     openvzDomainLookupByName, /* domainLookupByName */
diff --git a/src/proxy_internal.c b/src/proxy_internal.c
index 0186eba2ba..47be5d104d 100644
--- a/src/proxy_internal.c
+++ b/src/proxy_internal.c
@@ -53,7 +53,7 @@ struct xenUnifiedDriver xenProxyDriver = {
     xenProxyGetCapabilities, /* getCapabilities */
     xenProxyListDomains, /* listDomains */
     xenProxyNumOfDomains, /* numOfDomains */
-    NULL, /* domainCreateLinux */
+    NULL, /* domainCreateXML */
     NULL, /* domainSuspend */
     NULL, /* domainResume */
     NULL, /* domainShutdown */
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index a88cb75618..0a0efb6bbf 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -4025,7 +4025,7 @@ static virDriver qemuDriver = {
     qemudGetCapabilities, /* getCapabilities */
     qemudListDomains, /* listDomains */
     qemudNumDomains, /* numOfDomains */
-    qemudDomainCreate, /* domainCreateLinux */
+    qemudDomainCreate, /* domainCreateXML */
     qemudDomainLookupByID, /* domainLookupByID */
     qemudDomainLookupByUUID, /* domainLookupByUUID */
     qemudDomainLookupByName, /* domainLookupByName */
diff --git a/src/remote_internal.c b/src/remote_internal.c
index 06b0f4f374..2f3a261ab0 100644
--- a/src/remote_internal.c
+++ b/src/remote_internal.c
@@ -1391,26 +1391,26 @@ remoteNumOfDomains (virConnectPtr conn)
 }
 
 static virDomainPtr
-remoteDomainCreateLinux (virConnectPtr conn,
+remoteDomainCreateXML (virConnectPtr conn,
                          const char *xmlDesc,
                          unsigned int flags)
 {
     virDomainPtr dom;
-    remote_domain_create_linux_args args;
-    remote_domain_create_linux_ret ret;
+    remote_domain_create_xml_args args;
+    remote_domain_create_xml_ret ret;
     GET_PRIVATE (conn, NULL);
 
     args.xml_desc = (char *) xmlDesc;
     args.flags = flags;
 
     memset (&ret, 0, sizeof ret);
-    if (call (conn, priv, 0, REMOTE_PROC_DOMAIN_CREATE_LINUX,
-              (xdrproc_t) xdr_remote_domain_create_linux_args, (char *) &args,
-              (xdrproc_t) xdr_remote_domain_create_linux_ret, (char *) &ret) == -1)
+    if (call (conn, priv, 0, REMOTE_PROC_DOMAIN_CREATE_XML,
+              (xdrproc_t) xdr_remote_domain_create_xml_args, (char *) &args,
+              (xdrproc_t) xdr_remote_domain_create_xml_ret, (char *) &ret) == -1)
         return NULL;
 
     dom = get_nonnull_domain (conn, ret.dom);
-    xdr_free ((xdrproc_t) &xdr_remote_domain_create_linux_ret, (char *) &ret);
+    xdr_free ((xdrproc_t) &xdr_remote_domain_create_xml_ret, (char *) &ret);
 
     return dom;
 }
@@ -4829,7 +4829,7 @@ static virDriver driver = {
     .getCapabilities = remoteGetCapabilities,
     .listDomains = remoteListDomains,
     .numOfDomains = remoteNumOfDomains,
-    .domainCreateLinux = remoteDomainCreateLinux,
+    .domainCreateXML = remoteDomainCreateXML,
     .domainLookupByID = remoteDomainLookupByID,
     .domainLookupByUUID = remoteDomainLookupByUUID,
     .domainLookupByName = remoteDomainLookupByName,
diff --git a/src/test.c b/src/test.c
index ad51736250..596500761a 100644
--- a/src/test.c
+++ b/src/test.c
@@ -656,7 +656,7 @@ static int testNumOfDomains(virConnectPtr conn)
 }
 
 static virDomainPtr
-testDomainCreateLinux(virConnectPtr conn, const char *xml,
+testDomainCreateXML(virConnectPtr conn, const char *xml,
                       unsigned int flags ATTRIBUTE_UNUSED)
 {
     virDomainPtr ret;
@@ -1542,7 +1542,7 @@ static virDriver testDriver = {
     testGetCapabilities, /* getCapabilities */
     testListDomains, /* listDomains */
     testNumOfDomains, /* numOfDomains */
-    testDomainCreateLinux, /* domainCreateLinux */
+    testDomainCreateXML, /* domainCreateXML */
     testLookupDomainByID, /* domainLookupByID */
     testLookupDomainByUUID, /* domainLookupByUUID */
     testLookupDomainByName, /* domainLookupByName */
diff --git a/src/virsh.c b/src/virsh.c
index 313ec60966..2dd7dd21fb 100644
--- a/src/virsh.c
+++ b/src/virsh.c
@@ -894,7 +894,7 @@ cmdCreate(vshControl *ctl, const vshCmd *cmd)
     if (virFileReadAll(from, VIRSH_MAX_XML_FILE, &buffer) < 0)
         return FALSE;
 
-    dom = virDomainCreateLinux(ctl->conn, buffer, 0);
+    dom = virDomainCreateXML(ctl->conn, buffer, 0);
     free (buffer);
 
     if (dom != NULL) {
diff --git a/src/xen_internal.c b/src/xen_internal.c
index f498cc3d96..bdf8f8fa08 100644
--- a/src/xen_internal.c
+++ b/src/xen_internal.c
@@ -70,7 +70,7 @@ typedef struct v1_hypercall_struct
 #define XEN_V1_IOCTL_HYPERCALL_CMD                  \
     _IOC(_IOC_NONE, 'P', 0, sizeof(v1_hypercall_t))
 typedef v1_hypercall_t hypercall_t;
-#elif define(__sun__)
+#elif defined(__sun__)
 typedef privcmd_hypercall_t hypercall_t;
 #else
 #error "unsupported platform"
@@ -335,7 +335,7 @@ lock_pages(void *addr, size_t len)
 {
 #ifdef __linux__
         return (mlock(addr, len));
-#elif define(__sun)
+#elif defined(__sun)
         return (0);
 #endif
 }
@@ -345,7 +345,7 @@ unlock_pages(void *addr, size_t len)
 {
 #ifdef __linux__
         return (munlock(addr, len));
-#elif define(__sun)
+#elif defined(__sun)
         return (0);
 #endif
 }
@@ -661,7 +661,7 @@ typedef struct xen_op_v2_dom xen_op_v2_dom;
 #define XEN_HYPERVISOR_SOCKET	"/proc/xen/privcmd"
 #define HYPERVISOR_CAPABILITIES	"/sys/hypervisor/properties/capabilities"
 #define CPUINFO			"/proc/cpuinfo"
-#elif define(__sun__)
+#elif defined(__sun__)
 #define XEN_HYPERVISOR_SOCKET	"/dev/xen/privcmd"
 #define HYPERVISOR_CAPABILITIES	""
 #define CPUINFO			"/dev/cpu/self/cpuid"
@@ -684,7 +684,7 @@ struct xenUnifiedDriver xenHypervisorDriver = {
     xenHypervisorGetCapabilities, /* getCapabilities */
     xenHypervisorListDomains, /* listDomains */
     xenHypervisorNumOfDomains, /* numOfDomains */
-    NULL, /* domainCreateLinux */
+    NULL, /* domainCreateXML */
     xenHypervisorPauseDomain, /* domainSuspend */
     xenHypervisorResumeDomain, /* domainResume */
     NULL, /* domainShutdown */
diff --git a/src/xen_unified.c b/src/xen_unified.c
index 016181e968..86fd08cfae 100644
--- a/src/xen_unified.c
+++ b/src/xen_unified.c
@@ -495,16 +495,16 @@ xenUnifiedNumOfDomains (virConnectPtr conn)
 }
 
 static virDomainPtr
-xenUnifiedDomainCreateLinux (virConnectPtr conn,
-                             const char *xmlDesc, unsigned int flags)
+xenUnifiedDomainCreateXML (virConnectPtr conn,
+                           const char *xmlDesc, unsigned int flags)
 {
     GET_PRIVATE(conn);
     int i;
     virDomainPtr ret;
 
     for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
-        if (priv->opened[i] && drivers[i]->domainCreateLinux) {
-            ret = drivers[i]->domainCreateLinux (conn, xmlDesc, flags);
+        if (priv->opened[i] && drivers[i]->domainCreateXML) {
+            ret = drivers[i]->domainCreateXML (conn, xmlDesc, flags);
             if (ret) return ret;
         }
 
@@ -1303,7 +1303,7 @@ static virDriver xenUnifiedDriver = {
     .getCapabilities 		= xenUnifiedGetCapabilities,
     .listDomains 			= xenUnifiedListDomains,
     .numOfDomains 		= xenUnifiedNumOfDomains,
-    .domainCreateLinux 		= xenUnifiedDomainCreateLinux,
+    .domainCreateXML 		= xenUnifiedDomainCreateXML,
     .domainLookupByID 		= xenUnifiedDomainLookupByID,
     .domainLookupByUUID 		= xenUnifiedDomainLookupByUUID,
     .domainLookupByName 		= xenUnifiedDomainLookupByName,
diff --git a/src/xen_unified.h b/src/xen_unified.h
index c17b498b21..81f8c425e4 100644
--- a/src/xen_unified.h
+++ b/src/xen_unified.h
@@ -50,7 +50,7 @@ struct xenUnifiedDriver {
         virDrvGetCapabilities		getCapabilities;
         virDrvListDomains		listDomains;
         virDrvNumOfDomains		numOfDomains;
-        virDrvDomainCreateLinux		domainCreateLinux;
+        virDrvDomainCreateXML		domainCreateXML;
         virDrvDomainSuspend		domainSuspend;
         virDrvDomainResume		domainResume;
         virDrvDomainShutdown		domainShutdown;
diff --git a/src/xend_internal.c b/src/xend_internal.c
index 2d10e111ef..0737871fd9 100644
--- a/src/xend_internal.c
+++ b/src/xend_internal.c
@@ -940,7 +940,7 @@ xenDaemonListDomainsOld(virConnectPtr xend)
 
 #ifndef PROXY
 /**
- * xenDaemonDomainCreateLinux:
+ * xenDaemonDomainCreateXML:
  * @xend: A xend instance
  * @sexpr: An S-Expr description of the domain.
  *
@@ -954,7 +954,7 @@ xenDaemonListDomainsOld(virConnectPtr xend)
  */
 
 int
-xenDaemonDomainCreateLinux(virConnectPtr xend, const char *sexpr)
+xenDaemonDomainCreateXML(virConnectPtr xend, const char *sexpr)
 {
     int ret, serrno;
     char *ptr;
@@ -3741,7 +3741,7 @@ xenDaemonLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
 }
 
 /**
- * xenDaemonCreateLinux:
+ * xenDaemonCreateXML:
  * @conn: pointer to the hypervisor connection
  * @xmlDesc: an XML description of the domain
  * @flags: an optional set of virDomainFlags
@@ -3753,7 +3753,7 @@ xenDaemonLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
  * Returns a new domain object or NULL in case of failure
  */
 static virDomainPtr
-xenDaemonCreateLinux(virConnectPtr conn, const char *xmlDesc,
+xenDaemonCreateXML(virConnectPtr conn, const char *xmlDesc,
                      unsigned int flags ATTRIBUTE_UNUSED)
 {
     int ret;
@@ -3776,7 +3776,7 @@ xenDaemonCreateLinux(virConnectPtr conn, const char *xmlDesc,
         return (NULL);
     }
 
-    ret = xenDaemonDomainCreateLinux(conn, sexpr);
+    ret = xenDaemonDomainCreateXML(conn, sexpr);
     VIR_FREE(sexpr);
     if (ret != 0) {
         goto error;
@@ -4761,7 +4761,7 @@ struct xenUnifiedDriver xenDaemonDriver = {
     NULL,                        /* getCapabilities */
     xenDaemonListDomains,        /* listDomains */
     xenDaemonNumOfDomains,       /* numOfDomains */
-    xenDaemonCreateLinux,        /* domainCreateLinux */
+    xenDaemonCreateXML,          /* domainCreateXML */
     xenDaemonDomainSuspend,      /* domainSuspend */
     xenDaemonDomainResume,       /* domainResume */
     xenDaemonDomainShutdown,     /* domainShutdown */
diff --git a/src/xend_internal.h b/src/xend_internal.h
index 12fa379d51..e87a844cb9 100644
--- a/src/xend_internal.h
+++ b/src/xend_internal.h
@@ -53,7 +53,7 @@ xenDaemonOpen_unix(virConnectPtr conn, const char *path);
  * domain will be paused after creation and must be unpaused with
  * xenDaemonResumeDomain() to begin execution.
  */
-    int xenDaemonDomainCreateLinux(virConnectPtr xend, const char *sexpr);
+int xenDaemonDomainCreateXML(virConnectPtr xend, const char *sexpr);
 
 /**
  * \brief Lookup the id of a domain
diff --git a/src/xm_internal.c b/src/xm_internal.c
index a2dd9aaf6c..d1cd21672c 100644
--- a/src/xm_internal.c
+++ b/src/xm_internal.c
@@ -92,7 +92,7 @@ struct xenUnifiedDriver xenXMDriver = {
     NULL, /* getCapabilities */
     NULL, /* listDomains */
     NULL, /* numOfDomains */
-    NULL, /* domainCreateLinux */
+    NULL, /* domainCreateXML */
     NULL, /* domainSuspend */
     NULL, /* domainResume */
     NULL, /* domainShutdown */
@@ -604,7 +604,7 @@ int xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info) {
 #define MAX_VFB 1024
 /*
  * Turn a config record into a lump of XML describing the
- * domain, suitable for later feeding for virDomainCreateLinux
+ * domain, suitable for later feeding for virDomainCreateXML
  */
 virDomainDefPtr
 xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
@@ -1237,7 +1237,7 @@ no_memory:
 
 /*
  * Turn a config record into a lump of XML describing the
- * domain, suitable for later feeding for virDomainCreateLinux
+ * domain, suitable for later feeding for virDomainCreateXML
  */
 char *xenXMDomainDumpXML(virDomainPtr domain, int flags) {
     const char *filename;
@@ -1602,7 +1602,7 @@ int xenXMDomainCreate(virDomainPtr domain) {
         return (-1);
     }
 
-    ret = xenDaemonDomainCreateLinux(domain->conn, sexpr);
+    ret = xenDaemonDomainCreateXML(domain->conn, sexpr);
     VIR_FREE(sexpr);
     if (ret != 0) {
         return (-1);
diff --git a/src/xs_internal.c b/src/xs_internal.c
index fce7fa79c5..ca6277dde1 100644
--- a/src/xs_internal.c
+++ b/src/xs_internal.c
@@ -34,7 +34,7 @@
 
 #ifdef __linux__
 #define XEN_HYPERVISOR_SOCKET "/proc/xen/privcmd"
-#elif define(__sun__)
+#elif defined(__sun__)
 #define XEN_HYPERVISOR_SOCKET "/dev/xen/privcmd"
 #else
 #error "unsupported platform"
@@ -53,7 +53,7 @@ struct xenUnifiedDriver xenStoreDriver = {
     NULL, /* getCapabilities */
     xenStoreListDomains, /* listDomains */
     NULL, /* numOfDomains */
-    NULL, /* domainCreateLinux */
+    NULL, /* domainCreateXML */
     NULL, /* domainSuspend */
     NULL, /* domainResume */
     xenStoreDomainShutdown, /* domainShutdown */