您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ vmwareDriverUnlock函数代码示例

51自学网 2021-06-03 09:46:21
  C++
这篇教程C++ vmwareDriverUnlock函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中vmwareDriverUnlock函数的典型用法代码示例。如果您正苦于以下问题:C++ vmwareDriverUnlock函数的具体用法?C++ vmwareDriverUnlock怎么用?C++ vmwareDriverUnlock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了vmwareDriverUnlock函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: vmwareDomainGetState

static intvmwareDomainGetState(virDomainPtr dom,                     int *state,                     int *reason,                     unsigned int flags){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    int ret = -1;    virCheckFlags(0, -1);    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, "%s",                       _("no domain with matching uuid"));        goto cleanup;    }    if (vmwareUpdateVMStatus(driver, vm) < 0)        goto cleanup;    *state = virDomainObjGetState(vm, reason);    ret = 0;  cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:33,


示例2: vmwareDomainGetXMLDesc

static char *vmwareDomainGetXMLDesc(virDomainPtr dom, unsigned int flags){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    char *ret = NULL;    /* Flags checked by virDomainDefFormat */    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, "%s",                       _("no domain with matching uuid"));        goto cleanup;    }    ret = virDomainDefFormat(vm->def, flags);  cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:26,


示例3: vmwareDomainCreateWithFlags

static intvmwareDomainCreateWithFlags(virDomainPtr dom,                            unsigned int flags ATTRIBUTE_UNUSED){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    int ret = -1;    vmwareDriverLock(driver);    vm = virDomainFindByUUID(&driver->domains, dom->uuid);    if (!vm) {        char uuidstr[VIR_UUID_STRING_BUFLEN];        virUUIDFormat(dom->uuid, uuidstr);        vmwareError(VIR_ERR_NO_DOMAIN,                    _("No domain with matching uuid '%s'"), uuidstr);        goto cleanup;    }    if (virDomainObjIsActive(vm)) {        vmwareError(VIR_ERR_OPERATION_INVALID,                    "%s", _("Domain is already running"));        goto cleanup;    }    ret = vmwareStartVM(driver, vm);cleanup:    if (vm)        virDomainObjUnlock(vm);    vmwareDriverUnlock(driver);    return ret;}
开发者ID:rbu,项目名称:libvirt,代码行数:32,


示例4: vmwareDomainLookupByUUID

static virDomainPtrvmwareDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid){    struct vmware_driver *driver = conn->privateData;    virDomainObjPtr vm;    virDomainPtr dom = NULL;    vmwareDriverLock(driver);    vm = virDomainFindByUUID(&driver->domains, uuid);    vmwareDriverUnlock(driver);    if (!vm) {        vmwareError(VIR_ERR_NO_DOMAIN, NULL);        goto cleanup;    }    dom = virGetDomain(conn, vm->def->name, vm->def->uuid);    if (dom)        dom->id = vm->def->id;  cleanup:    if (vm)        virDomainObjUnlock(vm);    return dom;}
开发者ID:rbu,项目名称:libvirt,代码行数:25,


示例5: vmwareDomainGetInfo

static intvmwareDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    int ret = -1;    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, "%s",                       _("no domain with matching uuid"));        goto cleanup;    }    if (vmwareUpdateVMStatus(driver, vm) < 0)        goto cleanup;    info->state = virDomainObjGetState(vm, NULL);    info->cpuTime = 0;    info->maxMem = vm->def->mem.max_balloon;    info->memory = vm->def->mem.cur_balloon;    info->nrVirtCpu = vm->def->vcpus;    ret = 0;  cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:32,


示例6: vmwareDomainLookupByName

static virDomainPtrvmwareDomainLookupByName(virConnectPtr conn, const char *name){    struct vmware_driver *driver = conn->privateData;    virDomainObjPtr vm;    virDomainPtr dom = NULL;    vmwareDriverLock(driver);    vm = virDomainObjListFindByName(driver->domains, name);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, NULL);        goto cleanup;    }    dom = virGetDomain(conn, vm->def->name, vm->def->uuid);    if (dom)        dom->id = vm->def->id;  cleanup:    if (vm)        virObjectUnlock(vm);    return dom;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:25,


示例7: vmwareGetVersion

static intvmwareGetVersion(virConnectPtr conn, unsigned long *version){    struct vmware_driver *driver = conn->privateData;    vmwareDriverLock(driver);    *version = driver->version;    vmwareDriverUnlock(driver);    return 0;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:10,


示例8: vmwareListDefinedDomains

static intvmwareListDefinedDomains(virConnectPtr conn,                         char **const names, int nnames){    struct vmware_driver *driver = conn->privateData;    int n;    vmwareDriverLock(driver);    n = virDomainObjListGetInactiveNames(&driver->domains, names, nnames);    vmwareDriverUnlock(driver);    return n;}
开发者ID:rbu,项目名称:libvirt,代码行数:12,


示例9: vmwareListDomains

static intvmwareListDomains(virConnectPtr conn, int *ids, int nids){    struct vmware_driver *driver = conn->privateData;    int n;    vmwareDriverLock(driver);    n = virDomainObjListGetActiveIDs(&driver->domains, ids, nids);    vmwareDriverUnlock(driver);    return n;}
开发者ID:rbu,项目名称:libvirt,代码行数:12,


示例10: vmwareNumDomains

static intvmwareNumDomains(virConnectPtr conn){    struct vmware_driver *driver = conn->privateData;    int n;    vmwareDriverLock(driver);    n = virDomainObjListNumOfDomains(&driver->domains, 1);    vmwareDriverUnlock(driver);    return n;}
开发者ID:rbu,项目名称:libvirt,代码行数:12,


示例11: vmwareDomainResume

static intvmwareDomainResume(virDomainPtr dom){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    const char *cmd[] = {        VMRUN, "-T", PROGRAM_SENTINAL, "unpause", PROGRAM_SENTINAL,        NULL    };    int ret = -1;    if (driver->type == TYPE_PLAYER) {        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",                       _("vmplayer does not support libvirt suspend/resume "                         "(vmware pause/unpause) operation "));        return ret;    }    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, "%s",                       _("no domain with matching uuid"));        goto cleanup;    }    vmwareSetSentinal(cmd, vmw_types[driver->type]);    vmwareSetSentinal(cmd, ((vmwareDomainPtr) vm->privateData)->vmxPath);    if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_PAUSED) {        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",                       _("domain is not in suspend state"));        goto cleanup;    }    if (virRun(cmd, NULL) < 0)        goto cleanup;    virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UNPAUSED);    ret = 0;  cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:48,


示例12: vmwareListAllDomains

static intvmwareListAllDomains(virConnectPtr conn,                     virDomainPtr **domains,                     unsigned int flags){    struct vmware_driver *driver = conn->privateData;    int ret = -1;    virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);    vmwareDriverLock(driver);    vmwareDomainObjListUpdateAll(driver->domains, driver);    ret = virDomainObjListExport(driver->domains, conn, domains, flags);    vmwareDriverUnlock(driver);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:16,


示例13: vmwareDomainReboot

static intvmwareDomainReboot(virDomainPtr dom, unsigned int flags){    struct vmware_driver *driver = dom->conn->privateData;    const char * vmxPath = NULL;    virDomainObjPtr vm;    const char *cmd[] = {        VMRUN, "-T", PROGRAM_SENTINAL,        "reset", PROGRAM_SENTINAL, "soft", NULL    };    int ret = -1;    virCheckFlags(0, -1);    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, "%s",                       _("no domain with matching uuid"));        goto cleanup;    }    vmxPath = ((vmwareDomainPtr) vm->privateData)->vmxPath;    vmwareSetSentinal(cmd, vmw_types[driver->type]);    vmwareSetSentinal(cmd, vmxPath);    if (vmwareUpdateVMStatus(driver, vm) < 0)        goto cleanup;    if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) {        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",                       _("domain is not in running state"));        goto cleanup;    }    if (virRun(cmd, NULL) < 0)        goto cleanup;    ret = 0;  cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:47,


示例14: vmwareDomainUndefineFlags

static intvmwareDomainUndefineFlags(virDomainPtr dom,                          unsigned int flags){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    int ret = -1;    virCheckFlags(0, -1);    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    if (!vm) {        char uuidstr[VIR_UUID_STRING_BUFLEN];        virUUIDFormat(dom->uuid, uuidstr);        virReportError(VIR_ERR_NO_DOMAIN,                       _("no domain with matching uuid '%s'"), uuidstr);        goto cleanup;    }    if (!vm->persistent) {        virReportError(VIR_ERR_OPERATION_INVALID,                       "%s", _("cannot undefine transient domain"));        goto cleanup;    }    if (vmwareUpdateVMStatus(driver, vm) < 0)        goto cleanup;    if (virDomainObjIsActive(vm)) {        vm->persistent = 0;    } else {        virDomainObjListRemove(driver->domains, vm);        vm = NULL;    }    ret = 0;  cleanup:    if (vm)        virObjectUnlock(vm);    vmwareDriverUnlock(driver);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:46,


示例15: vmwareDomainShutdownFlags

static intvmwareDomainShutdownFlags(virDomainPtr dom,                          unsigned int flags){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    int ret = -1;    virCheckFlags(0, -1);    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, "%s",                       _("no domain with matching uuid"));        goto cleanup;    }    if (vmwareUpdateVMStatus(driver, vm) < 0)        goto cleanup;    if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) {        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",                       _("domain is not in running state"));        goto cleanup;    }    if (vmwareStopVM(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN) < 0)        goto cleanup;    if (!vm->persistent) {        virDomainObjListRemove(driver->domains, vm);        vm = NULL;    }    ret = 0;  cleanup:    if (vm)        virObjectUnlock(vm);    vmwareDriverUnlock(driver);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:44,


示例16: vmwareDomainUndefine

static intvmwareDomainUndefine(virDomainPtr dom){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    int ret = -1;    vmwareDriverLock(driver);    vm = virDomainFindByUUID(&driver->domains, dom->uuid);    if (!vm) {        char uuidstr[VIR_UUID_STRING_BUFLEN];        virUUIDFormat(dom->uuid, uuidstr);        vmwareError(VIR_ERR_NO_DOMAIN,                    _("no domain with matching uuid '%s'"), uuidstr);        goto cleanup;    }    if (virDomainObjIsActive(vm)) {        vmwareError(VIR_ERR_OPERATION_INVALID,                    "%s", _("cannot undefine active domain"));        goto cleanup;    }    if (!vm->persistent) {        vmwareError(VIR_ERR_OPERATION_INVALID,                    "%s", _("cannot undefine transient domain"));        goto cleanup;    }    virDomainRemoveInactive(&driver->domains, vm);    vm = NULL;    ret = 0;  cleanup:    if (vm)        virDomainObjUnlock(vm);    vmwareDriverUnlock(driver);    return ret;}
开发者ID:rbu,项目名称:libvirt,代码行数:41,


示例17: vmwareDomainIsActive

static intvmwareDomainIsActive(virDomainPtr dom){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr obj;    int ret = -1;    vmwareDriverLock(driver);    obj = virDomainFindByUUID(&driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!obj) {        vmwareError(VIR_ERR_NO_DOMAIN, NULL);        goto cleanup;    }    ret = virDomainObjIsActive(obj);  cleanup:    if (obj)        virDomainObjUnlock(obj);    return ret;}
开发者ID:rbu,项目名称:libvirt,代码行数:21,


示例18: vmwareDomainIsPersistent

static intvmwareDomainIsPersistent(virDomainPtr dom){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr obj;    int ret = -1;    vmwareDriverLock(driver);    obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!obj) {        virReportError(VIR_ERR_NO_DOMAIN, NULL);        goto cleanup;    }    ret = obj->persistent;  cleanup:    if (obj)        virObjectUnlock(obj);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:21,


示例19: vmwareDomainShutdown

static intvmwareDomainShutdown(virDomainPtr dom){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    int ret = -1;    vmwareDriverLock(driver);    vm = virDomainFindByUUID(&driver->domains, dom->uuid);    if (!vm) {        vmwareError(VIR_ERR_NO_DOMAIN, "%s",                    _("no domain with matching uuid"));        goto cleanup;    }    if (vm->state != VIR_DOMAIN_RUNNING) {        vmwareError(VIR_ERR_INTERNAL_ERROR, "%s",                    _("domain is not in running state"));        goto cleanup;    }    if (vmwareStopVM(driver, vm) < 0)        goto cleanup;    if (!vm->persistent) {        virDomainRemoveInactive(&driver->domains, vm);        vm = NULL;    }    ret = 0;  cleanup:    if (vm)        virDomainObjUnlock(vm);    vmwareDriverUnlock(driver);    return ret;}
开发者ID:rbu,项目名称:libvirt,代码行数:38,


示例20: vmwareGetOSType

static char *vmwareGetOSType(virDomainPtr dom){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    char *ret = NULL;    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, NULL);        goto cleanup;    }    if (!(ret = strdup(vm->def->os.type)))        virReportOOMError();  cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:24,


示例21: vmwareDomainDumpXML

static char *vmwareDomainDumpXML(virDomainPtr dom, int flags){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    char *ret = NULL;    vmwareDriverLock(driver);    vm = virDomainFindByUUID(&driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        vmwareError(VIR_ERR_NO_DOMAIN, "%s",                    _("no domain with matching uuid"));        goto cleanup;    }    ret = virDomainDefFormat(vm->def, flags);  cleanup:    if (vm)        virDomainObjUnlock(vm);    return ret;}
开发者ID:rbu,项目名称:libvirt,代码行数:24,


示例22: vmwareDomainCreateXML

static virDomainPtrvmwareDomainCreateXML(virConnectPtr conn, const char *xml,                      unsigned int flags){    struct vmware_driver *driver = conn->privateData;    virDomainDefPtr vmdef = NULL;    virDomainObjPtr vm = NULL;    virDomainPtr dom = NULL;    char *vmx = NULL;    char *vmxPath = NULL;    vmwareDomainPtr pDomain = NULL;    virVMXContext ctx;    virCheckFlags(0, NULL);    ctx.formatFileName = vmwareCopyVMXFileName;    vmwareDriverLock(driver);    if ((vmdef = virDomainDefParseString(driver->caps, xml,                                         1 << VIR_DOMAIN_VIRT_VMWARE,                                         VIR_DOMAIN_XML_INACTIVE)) == NULL)        goto cleanup;    /* generate vmx file */    vmx = virVMXFormatConfig(&ctx, driver->caps, vmdef, 7);    if (vmx == NULL)        goto cleanup;    if (vmwareVmxPath(vmdef, &vmxPath) < 0)        goto cleanup;    /* create vmx file */    if (virFileWriteStr(vmxPath, vmx, S_IRUSR|S_IWUSR) < 0) {        virReportError(VIR_ERR_INTERNAL_ERROR,                       _("Failed to write vmx file '%s'"), vmxPath);        goto cleanup;    }    /* assign def */    if (!(vm = virDomainObjListAdd(driver->domains,                                   driver->caps,                                   vmdef,                                   VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,                                   NULL)))        goto cleanup;    pDomain = vm->privateData;    pDomain->vmxPath = strdup(vmxPath);    vmwareDomainConfigDisplay(pDomain, vmdef);    vmdef = NULL;    if (vmwareStartVM(driver, vm) < 0) {        virDomainObjListRemove(driver->domains, vm);        vm = NULL;        goto cleanup;    }    dom = virGetDomain(conn, vm->def->name, vm->def->uuid);    if (dom)        dom->id = vm->def->id;cleanup:    virDomainDefFree(vmdef);    VIR_FREE(vmx);    VIR_FREE(vmxPath);    if (vm)        virObjectUnlock(vm);    vmwareDriverUnlock(driver);    return dom;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:72,


示例23: vmwareDomainDefineXML

static virDomainPtrvmwareDomainDefineXML(virConnectPtr conn, const char *xml){    struct vmware_driver *driver = conn->privateData;    virDomainDefPtr vmdef = NULL;    virDomainObjPtr vm = NULL;    virDomainPtr dom = NULL;    char *vmx = NULL;    char *directoryName = NULL;    char *fileName = NULL;    char *vmxPath = NULL;    vmwareDomainPtr pDomain = NULL;    virVMXContext ctx;    ctx.formatFileName = vmwareCopyVMXFileName;    vmwareDriverLock(driver);    if ((vmdef = virDomainDefParseString(driver->caps, xml,                                         1 << VIR_DOMAIN_VIRT_VMWARE,                                         VIR_DOMAIN_XML_INACTIVE)) == NULL)        goto cleanup;    if (virDomainObjIsDuplicate(&driver->domains, vmdef, 1) < 0)        goto cleanup;    /* generate vmx file */    vmx = virVMXFormatConfig(&ctx, driver->caps, vmdef, 7);    if (vmx == NULL)        goto cleanup;    if (vmwareVmxPath(vmdef, &vmxPath) < 0)        goto cleanup;    /* create vmx file */    if (virFileWriteStr(vmxPath, vmx, S_IRUSR|S_IWUSR) < 0) {        virReportError(VIR_ERR_INTERNAL_ERROR,                       _("Failed to write vmx file '%s'"), vmxPath);        goto cleanup;    }    /* assign def */    if (!(vm = virDomainAssignDef(driver->caps,                                  &driver->domains, vmdef, false)))        goto cleanup;    pDomain = vm->privateData;    if ((pDomain->vmxPath = strdup(vmxPath)) == NULL) {        virReportOOMError();        goto cleanup;    }    vmwareDomainConfigDisplay(pDomain, vmdef);    vmdef = NULL;    vm->persistent = 1;    dom = virGetDomain(conn, vm->def->name, vm->def->uuid);    if (dom)        dom->id = -1;  cleanup:    virDomainDefFree(vmdef);    VIR_FREE(vmx);    VIR_FREE(directoryName);    VIR_FREE(fileName);    VIR_FREE(vmxPath);    if (vm)        virDomainObjUnlock(vm);    vmwareDriverUnlock(driver);    return dom;}
开发者ID:pdf,项目名称:libvirt,代码行数:71,


示例24: vmwareDomainCreateXML

static virDomainPtrvmwareDomainCreateXML(virConnectPtr conn, const char *xml,                      unsigned int flags ATTRIBUTE_UNUSED){    struct vmware_driver *driver = conn->privateData;    virDomainDefPtr vmdef = NULL;    virDomainObjPtr vm = NULL;    virDomainPtr dom = NULL;    char *vmx = NULL;    char *vmxPath = NULL;    vmwareDomainPtr pDomain = NULL;    virVMXContext ctx;    ctx.formatFileName = vmwareCopyVMXFileName;    vmwareDriverLock(driver);    if ((vmdef = virDomainDefParseString(driver->caps, xml,                                         VIR_DOMAIN_XML_INACTIVE)) == NULL)        goto cleanup;    if (virDomainObjIsDuplicate(&driver->domains, vmdef, 1) < 0)        goto cleanup;    /* generate vmx file */    vmx = virVMXFormatConfig(&ctx, driver->caps, vmdef, 7);    if (vmx == NULL)        goto cleanup;    if (vmwareVmxPath(vmdef, &vmxPath) < 0)        goto cleanup;    /* create vmx file */    if (virFileWriteStr(vmxPath, vmx, S_IRUSR|S_IWUSR) < 0) {        vmwareError(VIR_ERR_INTERNAL_ERROR,                    _("Failed to write vmx file '%s'"), vmxPath);        goto cleanup;    }    /* assign def */    if (!(vm = virDomainAssignDef(driver->caps,                                  &driver->domains, vmdef, false)))        goto cleanup;    pDomain = vm->privateData;    pDomain->vmxPath = strdup(vmxPath);    vmwareDomainConfigDisplay(pDomain, vmdef);    vmdef = NULL;    if (vmwareStartVM(driver, vm) < 0) {        virDomainRemoveInactive(&driver->domains, vm);        vm = NULL;        goto cleanup;    }    dom = virGetDomain(conn, vm->def->name, vm->def->uuid);    if (dom)        dom->id = vm->def->id;cleanup:    virDomainDefFree(vmdef);    VIR_FREE(vmx);    VIR_FREE(vmxPath);    if(vm)        virDomainObjUnlock(vm);    vmwareDriverUnlock(driver);    return dom;}
开发者ID:rbu,项目名称:libvirt,代码行数:69,



注:本文中的vmwareDriverUnlock函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ vn_close函数代码示例
C++ vmwareDriverLock函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。