return NULL;
}
- *nparams = 3; /* reservation, limit, shares */
+ if (nparams != NULL) {
+ *nparams = 3; /* reservation, limit, shares */
+ }
return type;
}
/**
* virDomainGetSchedulerType:
* @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.
*/
goto cleanup;
}
- *nparams = 0;
+ if (nparams)
+ *nparams = 0;
switch(sched_id) {
case XEN_SCHEDULER_SEDF:
ret = strdup("sedf");
break;
case XEN_SCHEDULER_CREDIT:
ret = strdup("credit");
- *nparams = XEN_SCHED_CREDIT_NPARAM;
+ if (nparams)
+ *nparams = XEN_SCHED_CREDIT_NPARAM;
break;
case XEN_SCHEDULER_CREDIT2:
ret = strdup("credit2");
{
char *type = NULL;
- *nparams = 1;
+ if (nparams)
+ *nparams = 1;
+
type = strdup("fair");
if (!type)
virReportOOMError();
const char *ret = NULL;
char *schedulertype = NULL;
- if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)
- || (nparams == NULL)) {
+ if (domain->conn == NULL || domain->name == NULL) {
virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return NULL;
}
virReportOOMError();
goto error;
}
- *nparams = XEN_SCHED_CRED_NPARAM;
+ if (nparams)
+ *nparams = XEN_SCHED_CRED_NPARAM;
} else if (STREQ (ret, "sedf")) {
schedulertype = strdup("sedf");
if (schedulertype == NULL){
virReportOOMError();
goto error;
}
- *nparams = XEN_SCHED_SEDF_NPARAM;
+ if (nparams)
+ *nparams = XEN_SCHED_SEDF_NPARAM;
} else {
virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler"));
goto error;
xenapiDomainGetSchedulerType (virDomainPtr dom ATTRIBUTE_UNUSED, int *nparams)
{
char *result = NULL;
- *nparams = 0;
+
+ if (nparams)
+ *nparams = 0;
if (!(result = strdup("credit")))
virReportOOMError();
return result;