* Domain.
*/
typedef enum {
- VIR_DOMAIN_NONE = 0
+ VIR_DOMAIN_NONE = 0, /* Default behavior */
+ VIR_DOMAIN_START_PAUSED = 1 << 0, /* Launch guest in paused state */
} virDomainCreateFlags;
* virDomainCreateXML:
* @conn: pointer to the hypervisor connection
* @xmlDesc: string containing an XML description of the domain
- * @flags: callers should always pass 0
+ * @flags: bitwise-or of supported virDomainCreateFlags
*
* Launch a new guest domain, based on an XML description similar
* to the one returned by virDomainGetXMLDesc()
/*
+ * Copyright (C) 2010 Red Hat, Inc.
* Copyright IBM Corp. 2008
*
* lxc_driver.c: linux container driver functions
* lxcDomainCreateAndStart:
* @conn: pointer to connection
* @xml: XML definition of domain
- * @flags: Unused
+ * @flags: Must be 0 for now
*
* Creates a domain based on xml and starts it
*
static virDomainPtr
lxcDomainCreateAndStart(virConnectPtr conn,
const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED) {
+ unsigned int flags) {
lxc_driver_t *driver = conn->privateData;
virDomainObjPtr vm = NULL;
virDomainDefPtr def;
virDomainPtr dom = NULL;
virDomainEventPtr event = NULL;
+ virCheckFlags(0, NULL);
+
lxcDriverLock(driver);
if (!(def = virDomainDefParseString(driver->caps, xml,
VIR_DOMAIN_XML_INACTIVE)))
/*---------------------------------------------------------------------------*/
-/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
+/*
+ * Copyright (C) 2010 Red Hat, Inc.
+ * Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
* Complutense de Madrid (dsa-research.org)
*
* This library is free software; you can redistribute it and/or
static virDomainPtr
oneDomainCreateAndStart(virConnectPtr conn,
const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED) {
+ unsigned int flags) {
one_driver_t *driver = conn->privateData;
virDomainObjPtr vm = NULL;
virDomainDefPtr def;
virDomainPtr dom = NULL;
int oneid;
+ virCheckFlags(0, NULL);
+
oneDriverLock(driver);
if (!(def = virDomainDefParseString(driver->caps, xml,
VIR_DOMAIN_XML_INACTIVE)))
static virDomainPtr
openvzDomainCreateXML(virConnectPtr conn, const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
struct openvz_driver *driver = conn->privateData;
virDomainDefPtr vmdef = NULL;
virDomainPtr dom = NULL;
const char *progstart[] = {VZCTL, "--quiet", "start", PROGRAM_SENTINAL, NULL};
+ virCheckFlags(0, NULL);
+
openvzDriverLock(driver);
if ((vmdef = virDomainDefParseString(driver->caps, xml,
VIR_DOMAIN_XML_INACTIVE)) == NULL)
static virDomainPtr
phypDomainCreateAndStart(virConnectPtr conn,
const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
ConnectionData *connection_data = conn->networkPrivateData;
unsigned int i = 0;
char *managed_system = phyp_driver->managed_system;
+ virCheckFlags(0, NULL);
+
if (!(def = virDomainDefParseString(phyp_driver->caps, xml,
VIR_DOMAIN_XML_SECURE)))
goto err;
}
static virDomainPtr qemudDomainCreate(virConnectPtr conn, const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED) {
+ unsigned int flags) {
struct qemud_driver *driver = conn->privateData;
virDomainDefPtr def;
virDomainObjPtr vm = NULL;
virDomainPtr dom = NULL;
virDomainEventPtr event = NULL;
+ virCheckFlags(0, NULL);
+
qemuDriverLock(driver);
if (!(def = virDomainDefParseString(driver->caps, xml,
VIR_DOMAIN_XML_INACTIVE)))
static virDomainPtr
testDomainCreateXML(virConnectPtr conn, const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
testConnPtr privconn = conn->privateData;
virDomainPtr ret = NULL;
virDomainObjPtr dom = NULL;
virDomainEventPtr event = NULL;
+ virCheckFlags(0, NULL);
+
testDriverLock(privconn);
if ((def = virDomainDefParseString(privconn->caps, xml,
VIR_DOMAIN_XML_INACTIVE)) == NULL)
return n;
}
static virDomainPtr umlDomainCreate(virConnectPtr conn, const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED) {
+ unsigned int flags) {
struct uml_driver *driver = conn->privateData;
virDomainDefPtr def;
virDomainObjPtr vm = NULL;
virDomainPtr dom = NULL;
+ virCheckFlags(0, NULL);
+
umlDriverLock(driver);
if (!(def = virDomainDefParseString(driver->caps, xml,
VIR_DOMAIN_XML_INACTIVE)))
}
static virDomainPtr vboxDomainCreateXML(virConnectPtr conn, const char *xml,
- unsigned int flags ATTRIBUTE_UNUSED) {
+ unsigned int flags) {
/* VirtualBox currently doesn't have support for running
* virtual machines without actually defining them and thus
* for time being just define new machine and start it.
* change this behaviour to the expected one.
*/
- virDomainPtr dom = vboxDomainDefineXML(conn, xml);
+ virDomainPtr dom;
+
+ virCheckFlags(0, NULL);
+
+ dom = vboxDomainDefineXML(conn, xml);
if (dom == NULL)
return NULL;
*/
static virDomainPtr
xenDaemonCreateXML(virConnectPtr conn, const char *xmlDesc,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
int ret;
char *sexpr;
xenUnifiedPrivatePtr priv;
virDomainDefPtr def;
+ virCheckFlags(0, NULL);
+
priv = (xenUnifiedPrivatePtr) conn->privateData;
if (!(def = virDomainDefParseString(priv->caps,
static virDomainPtr
xenapiDomainCreateXML (virConnectPtr conn,
const char *xmlDesc,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
xen_vm_record *record = NULL;
xen_vm vm = NULL;
if (!caps)
return NULL;
+ virCheckFlags(0, NULL);
+
virDomainDefPtr defPtr = virDomainDefParseString(caps, xmlDesc, flags);
createVMRecordFromXml(conn, defPtr, &record, &vm);
virDomainDefFree(defPtr);