OSDN Git Service

moved DMA and SB16 outside timer (may break SB16)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 25 Feb 2004 23:30:56 +0000 (23:30 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 25 Feb 2004 23:30:56 +0000 (23:30 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@648 c046a42c-6fe2-441c-8c8c-71466251a162

vl.c

diff --git a/vl.c b/vl.c
index 99a9fc4..7e729ee 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -45,7 +45,6 @@
 #include <linux/if.h>
 #include <linux/if_tun.h>
 
-#include "cpu.h"
 #include "disas.h"
 #include "thunk.h"
 
@@ -2961,10 +2960,6 @@ static void host_alarm_handler(int host_signum, siginfo_t *info,
         gui_refresh_pending = 1;
     }
 
-    /* XXX: seems dangerous to run that here. */
-    DMA_run();
-    SB16_run();
-
     if (gui_refresh_pending || timer_irq_pending) {
         /* just exit from the cpu to have a chance to handle timers */
         cpu_interrupt(global_env, CPU_INTERRUPT_EXIT);
@@ -3090,6 +3085,11 @@ int main_loop(void *opaque)
             }
 #endif
         }
+        /* XXX: add explicit timer */
+        SB16_run();
+
+        /* run dma transfers, if any */
+        DMA_run();
 
         /* VGA */
         if (gui_refresh_pending) {