mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-13 11:15:08 +00:00
Fri Jun 22 12:40:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
* src/internal.h: Added STREQ and STRCASEEQ macros for clearer equality testing of strings. * src/xen_internal.c: Fix handling of the scheduler parameters field string so that the field doesn't contain garbage after the string.
This commit is contained in:
parent
65d0b1910b
commit
29ee614511
@ -1,3 +1,11 @@
|
|||||||
|
Fri Jun 22 12:40:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
|
||||||
|
* src/internal.h: Added STREQ and STRCASEEQ macros for clearer
|
||||||
|
equality testing of strings.
|
||||||
|
* src/xen_internal.c: Fix handling of the scheduler parameters
|
||||||
|
field string so that the field doesn't contain garbage
|
||||||
|
after the string.
|
||||||
|
|
||||||
Fri Jun 22 12:14:40 CEST 2007 Daniel Veillard <veillard@redhat.com>
|
Fri Jun 22 12:14:40 CEST 2007 Daniel Veillard <veillard@redhat.com>
|
||||||
|
|
||||||
* qemud/driver.c: apply patch from Jim Meyering to handle realloc
|
* qemud/driver.c: apply patch from Jim Meyering to handle realloc
|
||||||
|
@ -31,6 +31,10 @@ extern "C" {
|
|||||||
#include <ansidecl.h>
|
#include <ansidecl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* String equality tests, suggested by Jim Meyering. */
|
||||||
|
#define STREQ(a,b) (strcmp((a),(b)) == 0)
|
||||||
|
#define STRCASEEQ(a,b) (strcasecmp((a),(b)) == 0)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ATTRIBUTE_UNUSED:
|
* ATTRIBUTE_UNUSED:
|
||||||
*
|
*
|
||||||
|
@ -1053,6 +1053,9 @@ xenHypervisorGetSchedulerType(virDomainPtr domain, int *nparams)
|
|||||||
return schedulertype;
|
return schedulertype;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *str_weight = "weight";
|
||||||
|
static const char *str_cap = "cap";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* xenHypervisorGetSchedulerParameters:
|
* xenHypervisorGetSchedulerParameters:
|
||||||
* @domain: pointer to the Xen Hypervisor block
|
* @domain: pointer to the Xen Hypervisor block
|
||||||
@ -1071,8 +1074,6 @@ xenHypervisorGetSchedulerParameters(virDomainPtr domain,
|
|||||||
virSchedParameterPtr params, int *nparams)
|
virSchedParameterPtr params, int *nparams)
|
||||||
{
|
{
|
||||||
xenUnifiedPrivatePtr priv;
|
xenUnifiedPrivatePtr priv;
|
||||||
char str_weight[] ="weight";
|
|
||||||
char str_cap[] ="cap";
|
|
||||||
|
|
||||||
if ((domain == NULL) || (domain->conn == NULL)) {
|
if ((domain == NULL) || (domain->conn == NULL)) {
|
||||||
virXenErrorFunc(VIR_ERR_INTERNAL_ERROR, __FUNCTION__,
|
virXenErrorFunc(VIR_ERR_INTERNAL_ERROR, __FUNCTION__,
|
||||||
@ -1126,11 +1127,13 @@ xenHypervisorGetSchedulerParameters(virDomainPtr domain,
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return(-1);
|
return(-1);
|
||||||
|
|
||||||
strncpy(params[0].field, str_weight, strlen(str_weight));
|
strncpy (params[0].field, str_weight, VIR_DOMAIN_SCHED_FIELD_LENGTH);
|
||||||
|
params[0].field[VIR_DOMAIN_SCHED_FIELD_LENGTH-1] = '\0';
|
||||||
params[0].type = VIR_DOMAIN_SCHED_FIELD_UINT;
|
params[0].type = VIR_DOMAIN_SCHED_FIELD_UINT;
|
||||||
params[0].value.ui = op_dom.u.getschedinfo.u.credit.weight;
|
params[0].value.ui = op_dom.u.getschedinfo.u.credit.weight;
|
||||||
|
|
||||||
strncpy(params[1].field, str_cap, strlen(str_cap));
|
strncpy (params[1].field, str_cap, VIR_DOMAIN_SCHED_FIELD_LENGTH);
|
||||||
|
params[1].field[VIR_DOMAIN_SCHED_FIELD_LENGTH-1] = '\0';
|
||||||
params[1].type = VIR_DOMAIN_SCHED_FIELD_UINT;
|
params[1].type = VIR_DOMAIN_SCHED_FIELD_UINT;
|
||||||
params[1].value.ui = op_dom.u.getschedinfo.u.credit.cap;
|
params[1].value.ui = op_dom.u.getschedinfo.u.credit.cap;
|
||||||
|
|
||||||
@ -1161,8 +1164,6 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
xenUnifiedPrivatePtr priv;
|
xenUnifiedPrivatePtr priv;
|
||||||
char str_weight[] ="weight";
|
|
||||||
char str_cap[] ="cap";
|
|
||||||
|
|
||||||
if ((domain == NULL) || (domain->conn == NULL)) {
|
if ((domain == NULL) || (domain->conn == NULL)) {
|
||||||
virXenErrorFunc (VIR_ERR_INTERNAL_ERROR, __FUNCTION__,
|
virXenErrorFunc (VIR_ERR_INTERNAL_ERROR, __FUNCTION__,
|
||||||
@ -1227,11 +1228,11 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
|
|||||||
op_dom.u.getschedinfo.u.credit.cap = (uint16_t)~0U;
|
op_dom.u.getschedinfo.u.credit.cap = (uint16_t)~0U;
|
||||||
|
|
||||||
for (i = 0; i < nparams; i++) {
|
for (i = 0; i < nparams; i++) {
|
||||||
if (!strncmp(params[i].field,str_weight,strlen(str_weight)) &&
|
if (STREQ (params[i].field, str_weight) &&
|
||||||
params[i].type == VIR_DOMAIN_SCHED_FIELD_UINT) {
|
params[i].type == VIR_DOMAIN_SCHED_FIELD_UINT) {
|
||||||
op_dom.u.getschedinfo.u.credit.weight = params[i].value.ui;
|
op_dom.u.getschedinfo.u.credit.weight = params[i].value.ui;
|
||||||
weight_set = 1;
|
weight_set = 1;
|
||||||
} else if (!strncmp(params[i].field,str_cap,strlen(str_cap)) &&
|
} else if (STREQ (params[i].field, str_cap) &&
|
||||||
params[i].type == VIR_DOMAIN_SCHED_FIELD_UINT) {
|
params[i].type == VIR_DOMAIN_SCHED_FIELD_UINT) {
|
||||||
op_dom.u.getschedinfo.u.credit.cap = params[i].value.ui;
|
op_dom.u.getschedinfo.u.credit.cap = params[i].value.ui;
|
||||||
cap_set = 1;
|
cap_set = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user