added last_io_time field


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1752 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/softmmu_template.h b/softmmu_template.h
index 9bae4f6..1c12c42 100644
--- a/softmmu_template.h
+++ b/softmmu_template.h
@@ -68,6 +68,9 @@
     res |= (uint64_t)io_mem_read[index][2](io_mem_opaque[index], physaddr + 4) << 32;
 #endif
 #endif /* SHIFT > 2 */
+#ifdef USE_KQEMU
+    env->last_io_time = cpu_get_time_fast();
+#endif
     return res;
 }
 
@@ -201,6 +204,9 @@
     io_mem_write[index][2](io_mem_opaque[index], physaddr + 4, val >> 32);
 #endif
 #endif /* SHIFT > 2 */
+#ifdef USE_KQEMU
+    env->last_io_time = cpu_get_time_fast();
+#endif
 }
 
 void REGPARM(2) glue(glue(__st, SUFFIX), MMUSUFFIX)(target_ulong addr, 
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 450dd8c..eca3993 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -522,6 +522,7 @@
     
 #ifdef USE_KQEMU
     int kqemu_enabled;
+    int last_io_time;
 #endif
     /* in order to simplify APIC support, we leave this pointer to the
        user */
@@ -637,6 +638,15 @@
 #define X86_DUMP_FPU  0x0001 /* dump FPU state too */
 #define X86_DUMP_CCOP 0x0002 /* dump qemu flag cache */
 
+#ifdef USE_KQEMU
+static inline int cpu_get_time_fast(void)
+{
+    int low, high;
+    asm volatile("rdtsc" : "=a" (low), "=d" (high));
+    return low;
+}
+#endif
+
 #define TARGET_PAGE_BITS 12
 #include "cpu-all.h"