mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 03:21:19 +00:00
conf: Fix @mode member of _virDomainTimerDef struct
The @mode member of the _virDomainTimerDef struct stores values of the virDomainTimerModeType enum, or -1 for the default value (when user provided no value in XML). This is needlessly complicated. Introduce new value to the enum which reflects the default state. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
10eb597137
commit
82e902ddcc
@ -1207,6 +1207,7 @@ VIR_ENUM_IMPL(virDomainTimerTickpolicy,
|
|||||||
|
|
||||||
VIR_ENUM_IMPL(virDomainTimerMode,
|
VIR_ENUM_IMPL(virDomainTimerMode,
|
||||||
VIR_DOMAIN_TIMER_MODE_LAST,
|
VIR_DOMAIN_TIMER_MODE_LAST,
|
||||||
|
"none",
|
||||||
"auto",
|
"auto",
|
||||||
"native",
|
"native",
|
||||||
"emulate",
|
"emulate",
|
||||||
@ -5001,7 +5002,7 @@ virDomainDefPostParseTimer(virDomainDef *def)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timer->mode != -1) {
|
if (timer->mode) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
_("timer %s doesn't support setting of "
|
_("timer %s doesn't support setting of "
|
||||||
"timer mode"),
|
"timer mode"),
|
||||||
@ -12053,10 +12054,9 @@ virDomainTimerDefParseXML(xmlNodePtr node,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
def->mode = -1;
|
|
||||||
mode = virXMLPropString(node, "mode");
|
mode = virXMLPropString(node, "mode");
|
||||||
if (mode != NULL) {
|
if (mode != NULL) {
|
||||||
if ((def->mode = virDomainTimerModeTypeFromString(mode)) < 0) {
|
if ((def->mode = virDomainTimerModeTypeFromString(mode)) <= 0) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
_("unknown timer mode '%s'"), mode);
|
_("unknown timer mode '%s'"), mode);
|
||||||
goto error;
|
goto error;
|
||||||
@ -26133,16 +26133,9 @@ virDomainTimerDefFormat(virBuffer *buf,
|
|||||||
if (def->frequency > 0)
|
if (def->frequency > 0)
|
||||||
virBufferAsprintf(buf, " frequency='%llu'", def->frequency);
|
virBufferAsprintf(buf, " frequency='%llu'", def->frequency);
|
||||||
|
|
||||||
if (def->mode != -1) {
|
if (def->mode) {
|
||||||
const char *mode
|
virBufferAsprintf(buf, " mode='%s'",
|
||||||
= virDomainTimerModeTypeToString(def->mode);
|
virDomainTimerModeTypeToString(def->mode));
|
||||||
if (!mode) {
|
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
|
||||||
_("unexpected timer mode %d"),
|
|
||||||
def->mode);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
virBufferAsprintf(buf, " mode='%s'", mode);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2383,7 +2383,8 @@ typedef enum {
|
|||||||
} virDomainTimerTickpolicyType;
|
} virDomainTimerTickpolicyType;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VIR_DOMAIN_TIMER_MODE_AUTO = 0,
|
VIR_DOMAIN_TIMER_MODE_NONE = 0,
|
||||||
|
VIR_DOMAIN_TIMER_MODE_AUTO,
|
||||||
VIR_DOMAIN_TIMER_MODE_NATIVE,
|
VIR_DOMAIN_TIMER_MODE_NATIVE,
|
||||||
VIR_DOMAIN_TIMER_MODE_EMULATE,
|
VIR_DOMAIN_TIMER_MODE_EMULATE,
|
||||||
VIR_DOMAIN_TIMER_MODE_PARAVIRT,
|
VIR_DOMAIN_TIMER_MODE_PARAVIRT,
|
||||||
@ -2422,7 +2423,7 @@ struct _virDomainTimerDef {
|
|||||||
|
|
||||||
/* frequency & mode are only valid for name='tsc' */
|
/* frequency & mode are only valid for name='tsc' */
|
||||||
unsigned long long frequency; /* in Hz, unspecified = 0 */
|
unsigned long long frequency; /* in Hz, unspecified = 0 */
|
||||||
int mode; /* auto|native|emulate|paravirt */
|
int mode; /* enum virDomainTimerModeType */
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -627,7 +627,7 @@ xenParseHypervisorFeatures(virConf *conf, virDomainDef *def)
|
|||||||
timer->name = VIR_DOMAIN_TIMER_NAME_HPET;
|
timer->name = VIR_DOMAIN_TIMER_NAME_HPET;
|
||||||
timer->present = virTristateBoolFromBool(val);
|
timer->present = virTristateBoolFromBool(val);
|
||||||
timer->tickpolicy = VIR_DOMAIN_TIMER_TICKPOLICY_NONE;
|
timer->tickpolicy = VIR_DOMAIN_TIMER_TICKPOLICY_NONE;
|
||||||
timer->mode = -1;
|
timer->mode = VIR_DOMAIN_TIMER_MODE_NONE;
|
||||||
timer->track = VIR_DOMAIN_TIMER_TRACK_NONE;
|
timer->track = VIR_DOMAIN_TIMER_TRACK_NONE;
|
||||||
|
|
||||||
def->clock.timers[def->clock.ntimers - 1] = timer;
|
def->clock.timers[def->clock.ntimers - 1] = timer;
|
||||||
|
Loading…
Reference in New Issue
Block a user