From: Paolo Bonzini pbonz...@redhat.com
Reviewed-by: Igor Mammedov imamm...@redhat.com
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Andreas Färber afaer...@suse.de
---
hw/core/qdev-properties.c | 20 +++-
hw/i386/kvm/i8254.c | 6 ++---
hw/timer/mc146818rtc.c| 14 ++--
include/hw/block/block.h | 6 -
include/qemu-common.h | 8 ---
qapi-schema.json | 58 +++
6 files changed, 71 insertions(+), 41 deletions(-)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 76a0c4d..0a2ca05 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -449,36 +449,22 @@ PropertyInfo qdev_prop_macaddr = {
/* --- lost tick policy --- */
-static const char *lost_tick_policy_table[LOST_TICK_MAX+1] = {
-[LOST_TICK_DISCARD] = discard,
-[LOST_TICK_DELAY] = delay,
-[LOST_TICK_MERGE] = merge,
-[LOST_TICK_SLEW] = slew,
-[LOST_TICK_MAX] = NULL,
-};
-
QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) != sizeof(int));
PropertyInfo qdev_prop_losttickpolicy = {
.name = LostTickPolicy,
-.enum_table = lost_tick_policy_table,
+.enum_table = LostTickPolicy_lookup,
.get = get_enum,
.set = set_enum,
};
/* --- BIOS CHS translation */
-static const char *bios_chs_trans_table[] = {
-[BIOS_ATA_TRANSLATION_AUTO] = auto,
-[BIOS_ATA_TRANSLATION_NONE] = none,
-[BIOS_ATA_TRANSLATION_LBA] = lba,
-[BIOS_ATA_TRANSLATION_LARGE] = large,
-[BIOS_ATA_TRANSLATION_RECHS] = rechs,
-};
+QEMU_BUILD_BUG_ON(sizeof(BiosAtaTranslation) != sizeof(int));
PropertyInfo qdev_prop_bios_chs_trans = {
.name = bios-chs-trans,
-.enum_table = bios_chs_trans_table,
+.enum_table = BiosAtaTranslation_lookup,
.get = get_enum,
.set = set_enum,
};
diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c
index f8f3021..59373aa 100644
--- a/hw/i386/kvm/i8254.c
+++ b/hw/i386/kvm/i8254.c
@@ -268,9 +268,9 @@ static void kvm_pit_realizefn(DeviceState *dev, Error
**errp)
return;
}
switch (s-lost_tick_policy) {
-case LOST_TICK_DELAY:
+case LOST_TICK_POLICY_DELAY:
break; /* enabled by default */
-case LOST_TICK_DISCARD:
+case LOST_TICK_POLICY_DISCARD:
if (kvm_check_extension(kvm_state, KVM_CAP_REINJECT_CONTROL)) {
struct kvm_reinject_control control = { .pit_reinject = 0 };
@@ -300,7 +300,7 @@ static void kvm_pit_realizefn(DeviceState *dev, Error
**errp)
static Property kvm_pit_properties[] = {
DEFINE_PROP_UINT32(iobase, PITCommonState, iobase, -1),
DEFINE_PROP_LOSTTICKPOLICY(lost_tick_policy, KVMPITState,
- lost_tick_policy, LOST_TICK_DELAY),
+ lost_tick_policy, LOST_TICK_POLICY_DELAY),
DEFINE_PROP_END_OF_LIST(),
};
diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c
index 6fb124f..8509309 100644
--- a/hw/timer/mc146818rtc.c
+++ b/hw/timer/mc146818rtc.c
@@ -185,7 +185,7 @@ static void rtc_periodic_timer(void *opaque)
if (s-cmos_data[RTC_REG_B] REG_B_PIE) {
s-cmos_data[RTC_REG_C] |= REG_C_IRQF;
#ifdef TARGET_I386
-if (s-lost_tick_policy == LOST_TICK_SLEW) {
+if (s-lost_tick_policy == LOST_TICK_POLICY_SLEW) {
if (s-irq_reinject_on_ack_count = RTC_REINJECT_ON_ACK_COUNT)
s-irq_reinject_on_ack_count = 0;
apic_reset_irq_delivered();
@@ -708,7 +708,7 @@ static int rtc_post_load(void *opaque, int version_id)
#ifdef TARGET_I386
if (version_id = 2) {
-if (s-lost_tick_policy == LOST_TICK_SLEW) {
+if (s-lost_tick_policy == LOST_TICK_POLICY_SLEW) {
rtc_coalesced_timer_update(s);
}
}
@@ -749,7 +749,7 @@ static void rtc_notify_clock_reset(Notifier *notifier, void
*data)
periodic_timer_update(s, now);
check_update_timer(s);
#ifdef TARGET_I386
-if (s-lost_tick_policy == LOST_TICK_SLEW) {
+if (s-lost_tick_policy == LOST_TICK_POLICY_SLEW) {
rtc_coalesced_timer_update(s);
}
#endif
@@ -774,7 +774,7 @@ static void rtc_reset(void *opaque)
qemu_irq_lower(s-irq);
#ifdef TARGET_I386
-if (s-lost_tick_policy == LOST_TICK_SLEW) {
+if (s-lost_tick_policy == LOST_TICK_POLICY_SLEW) {
s-irq_coalesced = 0;
}
#endif
@@ -835,11 +835,11 @@ static void rtc_realizefn(DeviceState *dev, Error **errp)
#ifdef TARGET_I386
switch (s-lost_tick_policy) {
-case LOST_TICK_SLEW:
+case LOST_TICK_POLICY_SLEW:
s-coalesced_timer =
timer_new_ns(rtc_clock, rtc_coalesced_timer, s);
break;
-case LOST_TICK_DISCARD:
+case LOST_TICK_POLICY_DISCARD:
break;
default:
error_setg(errp, Invalid lost tick policy.);
@@ -890,7 +890,7 @@ ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq
intercept_irq)
static Property