qemu & hypervisor: move qemuDomainObjInitJob() into hypervisor

This patch moves qemuDomainObjInitJob() as virDomainObjInitJob()
into hypervisor in order to be used by other drivers as well.

Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Kristina Hanicova 2022-07-21 13:54:46 +02:00 committed by Michal Privoznik
parent f87dc1c49e
commit 260a091982
6 changed files with 31 additions and 31 deletions

View File

@ -112,3 +112,28 @@ virDomainJobStatusToType(virDomainJobStatus status)
return VIR_DOMAIN_JOB_NONE;
}
int
virDomainObjInitJob(virDomainJobObj *job,
virDomainObjPrivateJobCallbacks *cb)
{
memset(job, 0, sizeof(*job));
job->cb = cb;
if (virCondInit(&job->cond) < 0)
return -1;
if (virCondInit(&job->asyncCond) < 0) {
virCondDestroy(&job->cond);
return -1;
}
if (job->cb &&
!(job->privateData = job->cb->allocJobPrivate())) {
virCondDestroy(&job->cond);
virCondDestroy(&job->asyncCond);
return -1;
}
return 0;
}

View File

@ -204,3 +204,7 @@ struct _virDomainObjPrivateJobCallbacks {
virDomainObjPrivateJobFormat formatJobPrivate;
virDomainObjPrivateJobParse parseJobPrivate;
};
int virDomainObjInitJob(virDomainJobObj *job,
virDomainObjPrivateJobCallbacks *cb);

View File

@ -1590,6 +1590,7 @@ virDomainJobDataInit;
virDomainJobStatusToType;
virDomainJobTypeFromString;
virDomainJobTypeToString;
virDomainObjInitJob;
# hypervisor/virclosecallbacks.h

View File

@ -1755,7 +1755,7 @@ qemuDomainObjPrivateAlloc(void *opaque)
{
g_autoptr(qemuDomainObjPrivate) priv = g_new0(qemuDomainObjPrivate, 1);
if (qemuDomainObjInitJob(&priv->job, &qemuPrivateJobCallbacks) < 0) {
if (virDomainObjInitJob(&priv->job, &qemuPrivateJobCallbacks) < 0) {
virReportSystemError(errno, "%s",
_("Unable to init qemu driver mutexes"));
return NULL;

View File

@ -150,32 +150,6 @@ qemuDomainEventEmitJobCompleted(virQEMUDriver *driver,
}
int
qemuDomainObjInitJob(virDomainJobObj *job,
virDomainObjPrivateJobCallbacks *cb)
{
memset(job, 0, sizeof(*job));
job->cb = cb;
if (virCondInit(&job->cond) < 0)
return -1;
if (virCondInit(&job->asyncCond) < 0) {
virCondDestroy(&job->cond);
return -1;
}
if (job->cb &&
!(job->privateData = job->cb->allocJobPrivate())) {
virCondDestroy(&job->cond);
virCondDestroy(&job->asyncCond);
return -1;
}
return 0;
}
static void
qemuDomainObjResetJob(virDomainJobObj *job)
{

View File

@ -138,10 +138,6 @@ bool qemuDomainTrackJob(virDomainJob job);
void qemuDomainObjClearJob(virDomainJobObj *job);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virDomainJobObj, qemuDomainObjClearJob);
int
qemuDomainObjInitJob(virDomainJobObj *job,
virDomainObjPrivateJobCallbacks *cb);
int
qemuDomainObjPrivateXMLFormatJob(virBuffer *buf,
virDomainObj *vm);