mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Clarify semantic of nparams argument of virDomainGetSchedulerType
Some drivers assumed it can be NULL (e.g. qemu and lxc) and check it before assigning to it, other drivers assumed it must be non-NULL (e.g. test and esx) and just assigned to it. Unify this to nparams being optional and document it.
This commit is contained in:
parent
ed97be6176
commit
7b2f20b10b
@ -3513,7 +3513,9 @@ esxDomainGetSchedulerType(virDomainPtr domain ATTRIBUTE_UNUSED, int *nparams)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nparams != NULL) {
|
||||||
*nparams = 3; /* reservation, limit, shares */
|
*nparams = 3; /* reservation, limit, shares */
|
||||||
|
}
|
||||||
|
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
@ -4973,9 +4973,10 @@ error:
|
|||||||
/**
|
/**
|
||||||
* virDomainGetSchedulerType:
|
* virDomainGetSchedulerType:
|
||||||
* @domain: pointer to domain object
|
* @domain: pointer to domain object
|
||||||
* @nparams: number of scheduler parameters(return value)
|
* @nparams: pointer to number of scheduler parameters, can be NULL
|
||||||
|
* (return value)
|
||||||
*
|
*
|
||||||
* Get the scheduler type.
|
* Get the scheduler type and the number of scheduler parameters.
|
||||||
*
|
*
|
||||||
* Returns NULL in case of error. The caller must free the returned string.
|
* Returns NULL in case of error. The caller must free the returned string.
|
||||||
*/
|
*/
|
||||||
|
@ -2396,6 +2396,7 @@ libxlDomainGetSchedulerType(virDomainPtr dom, int *nparams)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nparams)
|
||||||
*nparams = 0;
|
*nparams = 0;
|
||||||
switch(sched_id) {
|
switch(sched_id) {
|
||||||
case XEN_SCHEDULER_SEDF:
|
case XEN_SCHEDULER_SEDF:
|
||||||
@ -2403,6 +2404,7 @@ libxlDomainGetSchedulerType(virDomainPtr dom, int *nparams)
|
|||||||
break;
|
break;
|
||||||
case XEN_SCHEDULER_CREDIT:
|
case XEN_SCHEDULER_CREDIT:
|
||||||
ret = strdup("credit");
|
ret = strdup("credit");
|
||||||
|
if (nparams)
|
||||||
*nparams = XEN_SCHED_CREDIT_NPARAM;
|
*nparams = XEN_SCHED_CREDIT_NPARAM;
|
||||||
break;
|
break;
|
||||||
case XEN_SCHEDULER_CREDIT2:
|
case XEN_SCHEDULER_CREDIT2:
|
||||||
|
@ -2624,7 +2624,9 @@ static char *testDomainGetSchedulerType(virDomainPtr domain ATTRIBUTE_UNUSED,
|
|||||||
{
|
{
|
||||||
char *type = NULL;
|
char *type = NULL;
|
||||||
|
|
||||||
|
if (nparams)
|
||||||
*nparams = 1;
|
*nparams = 1;
|
||||||
|
|
||||||
type = strdup("fair");
|
type = strdup("fair");
|
||||||
if (!type)
|
if (!type)
|
||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
|
@ -3531,8 +3531,7 @@ xenDaemonGetSchedulerType(virDomainPtr domain, int *nparams)
|
|||||||
const char *ret = NULL;
|
const char *ret = NULL;
|
||||||
char *schedulertype = NULL;
|
char *schedulertype = NULL;
|
||||||
|
|
||||||
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)
|
if (domain->conn == NULL || domain->name == NULL) {
|
||||||
|| (nparams == NULL)) {
|
|
||||||
virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__);
|
virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -3562,6 +3561,7 @@ xenDaemonGetSchedulerType(virDomainPtr domain, int *nparams)
|
|||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
if (nparams)
|
||||||
*nparams = XEN_SCHED_CRED_NPARAM;
|
*nparams = XEN_SCHED_CRED_NPARAM;
|
||||||
} else if (STREQ (ret, "sedf")) {
|
} else if (STREQ (ret, "sedf")) {
|
||||||
schedulertype = strdup("sedf");
|
schedulertype = strdup("sedf");
|
||||||
@ -3569,6 +3569,7 @@ xenDaemonGetSchedulerType(virDomainPtr domain, int *nparams)
|
|||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
if (nparams)
|
||||||
*nparams = XEN_SCHED_SEDF_NPARAM;
|
*nparams = XEN_SCHED_SEDF_NPARAM;
|
||||||
} else {
|
} else {
|
||||||
virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler"));
|
virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler"));
|
||||||
|
@ -1767,6 +1767,8 @@ static char *
|
|||||||
xenapiDomainGetSchedulerType (virDomainPtr dom ATTRIBUTE_UNUSED, int *nparams)
|
xenapiDomainGetSchedulerType (virDomainPtr dom ATTRIBUTE_UNUSED, int *nparams)
|
||||||
{
|
{
|
||||||
char *result = NULL;
|
char *result = NULL;
|
||||||
|
|
||||||
|
if (nparams)
|
||||||
*nparams = 0;
|
*nparams = 0;
|
||||||
if (!(result = strdup("credit")))
|
if (!(result = strdup("credit")))
|
||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
|
Loading…
Reference in New Issue
Block a user