From: Nikolay Shirokovskiy Date: Wed, 20 Apr 2016 14:05:41 +0000 (+0300) Subject: vz: move getting container video devices out from vnc code X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=e7878d4623825e12be91a20b5337c5575bd4775e;p=libvirt.git vz: move getting container video devices out from vnc code Signed-off-by: Nikolay Shirokovskiy --- diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 26aa3f2e22..4e3005f554 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -474,7 +474,33 @@ prlsdkDomObjFreePrivate(void *p) }; static int -prlsdkAddDomainVideoInfo(PRL_HANDLE sdkdom, virDomainDefPtr def) +prlsdkAddDomainVideoInfoCt(virDomainDefPtr def) +{ + virDomainVideoDefPtr video = NULL; + int ret = -1; + + if (def->ngraphics == 0) + return 0; + + if (VIR_ALLOC(video) < 0) + goto cleanup; + + video->type = VIR_DOMAIN_VIDEO_TYPE_PARALLELS; + video->vram = 0; + video->heads = 1; + + if (VIR_APPEND_ELEMENT(def->videos, def->nvideos, video) < 0) + goto cleanup; + + ret = 0; + cleanup: + virDomainVideoDefFree(video); + + return ret; +} + +static int +prlsdkAddDomainVideoInfoVm(PRL_HANDLE sdkdom, virDomainDefPtr def) { virDomainVideoDefPtr video = NULL; virDomainVideoAccelDefPtr accel = NULL; @@ -1119,9 +1145,13 @@ prlsdkAddSerialInfo(PRL_HANDLE sdkdom, static int prlsdkAddDomainHardware(vzDriverPtr driver, PRL_HANDLE sdkdom, virDomainDefPtr def) { - if (!IS_CT(def)) - if (prlsdkAddDomainVideoInfo(sdkdom, def) < 0) + if (IS_CT(def)) { + if (prlsdkAddDomainVideoInfoCt(def) < 0) + goto error; + } else { + if (prlsdkAddDomainVideoInfoVm(sdkdom, def) < 0) goto error; + } if (prlsdkAddDomainHardDisksInfo(driver, sdkdom, def) < 0) goto error; @@ -1185,25 +1215,6 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDefPtr def) if (VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, gr) < 0) goto error; - if (IS_CT(def)) { - virDomainVideoDefPtr video; - if (VIR_ALLOC(video) < 0) - goto error; - video->type = virDomainVideoDefaultType(def); - if (video->type < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("cannot determine default video type")); - VIR_FREE(video); - goto error; - } - video->vram = virDomainVideoDefaultRAM(def, video->type); - video->heads = 1; - if (VIR_ALLOC_N(def->videos, 1) < 0) { - virDomainVideoDefFree(video); - goto error; - } - def->videos[def->nvideos++] = video; - } return 0; error: @@ -1697,6 +1708,10 @@ prlsdkLoadDomain(vzDriverPtr driver, virDomainObjPtr dom) if (prlsdkConvertDomainType(sdkdom, def) < 0) goto error; + if (prlsdkAddVNCInfo(sdkdom, def) < 0) + goto error; + + /* depends on prlsdkAddVNCInfo */ if (prlsdkAddDomainHardware(driver, sdkdom, def) < 0) goto error; @@ -1704,9 +1719,6 @@ prlsdkLoadDomain(vzDriverPtr driver, virDomainObjPtr dom) if (prlsdkConvertBootOrder(sdkdom, def) < 0) goto error; - if (prlsdkAddVNCInfo(sdkdom, def) < 0) - goto error; - pret = PrlVmCfg_GetEnvId(sdkdom, &envId); prlsdkCheckRetGoto(pret, error);