Changes since previous version: * The first 4 patches haven't changed since version 3. * New patch 5: The 8259 patch has been totally redesigned again, this time based on a new understanding that on real hardware, if the trailing edge of an interrupt arrives before the interrupt is serviced, then it cancels the interrupt, just like a level triggered interrupt. See earlier email discussion. * New patch 6 just refactors the code (no functionality change) after the one line fix in patch 5.
I'm also sending a couple of patches for related projects, separately: * Two KVM (Linux kernel) patches that do roughly the same thing as patches 5 and 6, only for the in-kernel PIC. * A patch for the kvm-unit-tests project that adds a test case to demonstrate the trailing edge behavior. Matthew Ogilvie (6): fix some debug printf format strings vl: fix -hdachs/-hda argument order parsing issues qemu-options.hx: mention retrace= VGA option vga: add some optional CGA compatibility hacks i8259: fix so that dropping IRQ level always clears the interrupt request i8259: refactor pic_set_irq level logic hw/cirrus_vga.c | 4 ++-- hw/i8259.c | 28 ++++++++++---------------- hw/ide/cmd646.c | 5 +++-- hw/ide/via.c | 5 +++-- hw/pc.h | 4 ++++ hw/vga.c | 37 ++++++++++++++++++++++++++-------- qemu-options.hx | 27 ++++++++++++++++++++++++- vl.c | 62 ++++++++++++++++++++++++++++++++++++++------------------- 8 files changed, 119 insertions(+), 53 deletions(-) -- 1.7.10.2.484.gcd07cc5