[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH, RFC 4/4] Compile mc146818 only once
From: |
Blue Swirl |
Subject: |
[Qemu-devel] [PATCH, RFC 4/4] Compile mc146818 only once |
Date: |
Sun, 23 May 2010 12:40:10 +0000 |
8 compilations less for the full build.
Signed-off-by: Blue Swirl <address@hidden>
---
Makefile.objs | 1 +
Makefile.target | 7 +++----
default-configs/i386-softmmu.mak | 1 +
default-configs/mips-softmmu.mak | 1 +
default-configs/mips64-softmmu.mak | 1 +
default-configs/mips64el-softmmu.mak | 1 +
default-configs/mipsel-softmmu.mak | 1 +
default-configs/ppc-softmmu.mak | 1 +
default-configs/ppc64-softmmu.mak | 1 +
default-configs/ppcemb-softmmu.mak | 1 +
default-configs/sparc64-softmmu.mak | 1 +
default-configs/x86_64-softmmu.mak | 1 +
hw/mc146818rtc.c | 33 ++++++++++++---------------------
13 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/Makefile.objs b/Makefile.objs
index b1a6e01..7a234de 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -142,6 +142,7 @@ hw-obj-$(CONFIG_ECC) += ecc.o
hw-obj-$(CONFIG_NAND) += nand.o
hw-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
hw-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
+hw-obj-$(CONFIG_MC146818) += mc146818rtc.o
hw-obj-$(CONFIG_M48T59) += m48t59.o
hw-obj-$(CONFIG_ESCC) += escc.o
diff --git a/Makefile.target b/Makefile.target
index 00e140f..d4d2c7f 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -189,7 +189,7 @@ obj-y += e1000.o
# Hardware support
obj-i386-y += vga.o
-obj-i386-y += mc146818rtc.o i8259.o pc.o
+obj-i386-y += i8259.o pc.o
obj-i386-y += cirrus_vga.o apic.o ioapic.o piix_pci.o
obj-i386-y += vmmouse.o vmport.o hpet.o
obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
@@ -200,7 +200,7 @@ obj-i386-y += pc_piix.o
obj-ppc-y = ppc.o
obj-ppc-y += vga.o
# PREP target
-obj-ppc-y += i8259.o mc146818rtc.o
+obj-ppc-y += i8259.o
obj-ppc-y += ppc_prep.o
# OldWorld PowerMac
obj-ppc-y += ppc_oldworld.o
@@ -218,7 +218,7 @@ obj-mips-y = mips_r4k.o mips_jazz.o mips_malta.o
mips_mipssim.o
obj-mips-y += mips_addr.o mips_timer.o mips_int.o
obj-mips-y += vga.o i8259.o
obj-mips-y += g364fb.o jazz_led.o
-obj-mips-y += gt64xxx.o mc146818rtc.o
+obj-mips-y += gt64xxx.o
obj-mips-y += piix4.o cirrus_vga.o
obj-microblaze-y = petalogix_s3adsp1800_mmu.o
@@ -244,7 +244,6 @@ obj-cris-y += etraxfs_ser.o
ifeq ($(TARGET_ARCH), sparc64)
obj-sparc-y = sun4u.o apb_pci.o
obj-sparc-y += vga.o
-obj-sparc-y += mc146818rtc.o
obj-sparc-y += cirrus_vga.o
else
obj-sparc-y = sun4m.o lance.o tcx.o sun4m_iommu.o slavio_intctl.o
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index ed00471..ac222e6 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -7,6 +7,7 @@ CONFIG_VMWARE_VGA=y
CONFIG_SERIAL=y
CONFIG_PARALLEL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCSPK=y
CONFIG_PCKBD=y
CONFIG_USB_UHCI=y
diff --git a/default-configs/mips-softmmu.mak b/default-configs/mips-softmmu.mak
index 29be52e..c8c7fd1 100644
--- a/default-configs/mips-softmmu.mak
+++ b/default-configs/mips-softmmu.mak
@@ -9,6 +9,7 @@ CONFIG_VMWARE_VGA=y
CONFIG_SERIAL=y
CONFIG_PARALLEL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCSPK=y
CONFIG_PCKBD=y
CONFIG_USB_UHCI=y
diff --git a/default-configs/mips64-softmmu.mak
b/default-configs/mips64-softmmu.mak
index 9bae8a7..6582ca0 100644
--- a/default-configs/mips64-softmmu.mak
+++ b/default-configs/mips64-softmmu.mak
@@ -9,6 +9,7 @@ CONFIG_VMWARE_VGA=y
CONFIG_SERIAL=y
CONFIG_PARALLEL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCSPK=y
CONFIG_PCKBD=y
CONFIG_USB_UHCI=y
diff --git a/default-configs/mips64el-softmmu.mak
b/default-configs/mips64el-softmmu.mak
index b372c1d..01901ee 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -9,6 +9,7 @@ CONFIG_VMWARE_VGA=y
CONFIG_SERIAL=y
CONFIG_PARALLEL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCSPK=y
CONFIG_PCKBD=y
CONFIG_USB_UHCI=y
diff --git a/default-configs/mipsel-softmmu.mak
b/default-configs/mipsel-softmmu.mak
index 10ef483..e47ba6a 100644
--- a/default-configs/mipsel-softmmu.mak
+++ b/default-configs/mipsel-softmmu.mak
@@ -9,6 +9,7 @@ CONFIG_VMWARE_VGA=y
CONFIG_SERIAL=y
CONFIG_PARALLEL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCSPK=y
CONFIG_PCKBD=y
CONFIG_USB_UHCI=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index c026bbb..651a489 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -8,6 +8,7 @@ CONFIG_M48T59=y
CONFIG_VGA_PCI=y
CONFIG_SERIAL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_DMA=y
diff --git a/default-configs/ppc64-softmmu.mak
b/default-configs/ppc64-softmmu.mak
index 0101a28..e9bb814 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -8,6 +8,7 @@ CONFIG_M48T59=y
CONFIG_VGA_PCI=y
CONFIG_SERIAL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_DMA=y
diff --git a/default-configs/ppcemb-softmmu.mak
b/default-configs/ppcemb-softmmu.mak
index 8ba9ac1..2f948c4 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -8,6 +8,7 @@ CONFIG_M48T59=y
CONFIG_VGA_PCI=y
CONFIG_SERIAL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_DMA=y
diff --git a/default-configs/sparc64-softmmu.mak
b/default-configs/sparc64-softmmu.mak
index 1cc3f13..6ab0cf4 100644
--- a/default-configs/sparc64-softmmu.mak
+++ b/default-configs/sparc64-softmmu.mak
@@ -6,6 +6,7 @@ CONFIG_PTIMER=y
CONFIG_VGA_PCI=y
CONFIG_SERIAL=y
CONFIG_PARALLEL=y
+CONFIG_MC146818=y
CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_IDE_CORE=y
diff --git a/default-configs/x86_64-softmmu.mak
b/default-configs/x86_64-softmmu.mak
index 5183203..3f1d697 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -7,6 +7,7 @@ CONFIG_VMWARE_VGA=y
CONFIG_SERIAL=y
CONFIG_PARALLEL=y
CONFIG_I8254=y
+CONFIG_MC146818=y
CONFIG_PCSPK=y
CONFIG_PCKBD=y
CONFIG_USB_UHCI=y
diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c
index 93d72cc..d9e91fd 100644
--- a/hw/mc146818rtc.c
+++ b/hw/mc146818rtc.c
@@ -95,7 +95,6 @@ typedef struct RTCState {
static void rtc_set_time(RTCState *s);
static void rtc_copy_date(RTCState *s);
-#ifdef TARGET_I386
static void rtc_coalesced_timer_update(RTCState *s)
{
if (s->irq_coalesced == 0) {
@@ -127,7 +126,6 @@ void rtc_dec_coalesced(ISADevice *dev)
s->irq_coalesced--;
}
-#endif
static void rtc_timer_update(RTCState *s, int64_t current_time)
{
@@ -142,11 +140,11 @@ static void rtc_timer_update(RTCState *s,
int64_t current_time)
period_code += 7;
/* period in 32 Khz cycles */
period = 1 << (period_code - 1);
-#ifdef TARGET_I386
+
if(period != s->period)
s->irq_coalesced = (s->irq_coalesced * s->period) / period;
s->period = period;
-#endif
+
/* compute 32 khz clock */
cur_clock = muldiv64(current_time, 32768, get_ticks_per_sec());
next_irq_clock = (cur_clock & ~(period - 1)) + period;
@@ -154,9 +152,7 @@ static void rtc_timer_update(RTCState *s, int64_t
current_time)
muldiv64(next_irq_clock, get_ticks_per_sec(), 32768) + 1;
qemu_mod_timer(s->periodic_timer, s->next_periodic_time);
} else {
-#ifdef TARGET_I386
s->irq_coalesced = 0;
-#endif
qemu_del_timer(s->periodic_timer);
}
}
@@ -168,7 +164,6 @@ static void rtc_periodic_timer(void *opaque)
rtc_timer_update(s, s->next_periodic_time);
if (s->cmos_data[RTC_REG_B] & REG_B_PIE) {
s->cmos_data[RTC_REG_C] |= 0xc0;
-#ifdef TARGET_I386
if(rtc_td_hack) {
uint32_t old_coalesced = s->irq_coalesced;
@@ -179,9 +174,9 @@ static void rtc_periodic_timer(void *opaque)
s->irq_coalesced++;
rtc_coalesced_timer_update(s);
}
- } else
-#endif
- qemu_irq_raise(s->irq);
+ } else {
+ qemu_irq_raise(s->irq);
+ }
}
if (s->cmos_data[RTC_REG_B] & REG_B_SQWE) {
/* Not square wave at all but we don't want 2048Hz interrupts!
@@ -451,14 +446,12 @@ static uint32_t cmos_ioport_read(void *opaque,
uint32_t addr)
case RTC_REG_C:
ret = s->cmos_data[s->cmos_index];
qemu_irq_lower(s->irq);
-#ifdef TARGET_I386
if(s->irq_coalesced &&
s->irq_reinject_on_ack_count < RTC_REINJECT_ON_ACK_COUNT) {
s->irq_reinject_on_ack_count++;
qemu_irq_raise(s->irq);
break;
}
-#endif
s->cmos_data[RTC_REG_C] = 0x00;
break;
@@ -507,7 +500,6 @@ static void rtc_set_date_from_host(ISADevice *dev)
static int rtc_post_load(void *opaque, int version_id)
{
-#ifdef TARGET_I386
RTCState *s = opaque;
if (version_id >= 2) {
@@ -515,7 +507,6 @@ static int rtc_post_load(void *opaque, int version_id)
rtc_coalesced_timer_update(s);
}
}
-#endif
return 0;
}
@@ -555,10 +546,9 @@ static void rtc_reset(void *opaque)
qemu_irq_lower(s->irq);
-#ifdef TARGET_I386
- if (rtc_td_hack)
- s->irq_coalesced = 0;
-#endif
+ if (rtc_td_hack) {
+ s->irq_coalesced = 0;
+ }
}
static int rtc_initfn(ISADevice *dev)
@@ -577,11 +567,12 @@ static int rtc_initfn(ISADevice *dev)
rtc_set_date_from_host(dev);
s->periodic_timer = qemu_new_timer(rtc_clock, rtc_periodic_timer, s);
-#ifdef TARGET_I386
- if (rtc_td_hack)
+
+ if (rtc_td_hack) {
s->coalesced_timer =
qemu_new_timer(rtc_clock, rtc_coalesced_timer, s);
-#endif
+ }
+
s->second_timer = qemu_new_timer(rtc_clock, rtc_update_second, s);
s->second_timer2 = qemu_new_timer(rtc_clock, rtc_update_second2, s);
--
1.6.2.4
- [Qemu-devel] [PATCH, RFC 4/4] Compile mc146818 only once,
Blue Swirl <=