mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +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_DOMAIN_TIMER_MODE_LAST,
|
||||
"none",
|
||||
"auto",
|
||||
"native",
|
||||
"emulate",
|
||||
@ -5001,7 +5002,7 @@ virDomainDefPostParseTimer(virDomainDef *def)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (timer->mode != -1) {
|
||||
if (timer->mode) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("timer %s doesn't support setting of "
|
||||
"timer mode"),
|
||||
@ -12053,10 +12054,9 @@ virDomainTimerDefParseXML(xmlNodePtr node,
|
||||
goto error;
|
||||
}
|
||||
|
||||
def->mode = -1;
|
||||
mode = virXMLPropString(node, "mode");
|
||||
if (mode != NULL) {
|
||||
if ((def->mode = virDomainTimerModeTypeFromString(mode)) < 0) {
|
||||
if ((def->mode = virDomainTimerModeTypeFromString(mode)) <= 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown timer mode '%s'"), mode);
|
||||
goto error;
|
||||
@ -26133,16 +26133,9 @@ virDomainTimerDefFormat(virBuffer *buf,
|
||||
if (def->frequency > 0)
|
||||
virBufferAsprintf(buf, " frequency='%llu'", def->frequency);
|
||||
|
||||
if (def->mode != -1) {
|
||||
const char *mode
|
||||
= virDomainTimerModeTypeToString(def->mode);
|
||||
if (!mode) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("unexpected timer mode %d"),
|
||||
def->mode);
|
||||
return -1;
|
||||
}
|
||||
virBufferAsprintf(buf, " mode='%s'", mode);
|
||||
if (def->mode) {
|
||||
virBufferAsprintf(buf, " mode='%s'",
|
||||
virDomainTimerModeTypeToString(def->mode));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2383,7 +2383,8 @@ typedef enum {
|
||||
} virDomainTimerTickpolicyType;
|
||||
|
||||
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_EMULATE,
|
||||
VIR_DOMAIN_TIMER_MODE_PARAVIRT,
|
||||
@ -2422,7 +2423,7 @@ struct _virDomainTimerDef {
|
||||
|
||||
/* frequency & mode are only valid for name='tsc' */
|
||||
unsigned long long frequency; /* in Hz, unspecified = 0 */
|
||||
int mode; /* auto|native|emulate|paravirt */
|
||||
int mode; /* enum virDomainTimerModeType */
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
|
@ -627,7 +627,7 @@ xenParseHypervisorFeatures(virConf *conf, virDomainDef *def)
|
||||
timer->name = VIR_DOMAIN_TIMER_NAME_HPET;
|
||||
timer->present = virTristateBoolFromBool(val);
|
||||
timer->tickpolicy = VIR_DOMAIN_TIMER_TICKPOLICY_NONE;
|
||||
timer->mode = -1;
|
||||
timer->mode = VIR_DOMAIN_TIMER_MODE_NONE;
|
||||
timer->track = VIR_DOMAIN_TIMER_TRACK_NONE;
|
||||
|
||||
def->clock.timers[def->clock.ntimers - 1] = timer;
|
||||
|
Loading…
x
Reference in New Issue
Block a user