From: bellard Date: Wed, 8 Feb 2006 22:41:53 +0000 (+0000) Subject: added last_io_time field X-Git-Tag: release_0_8_1~146 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=f1c85677fc83b82e737223bfbff11241caa050b4;p=qemu.git 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 9bae4f628..1c12c4241 100644 --- a/softmmu_template.h +++ b/softmmu_template.h @@ -68,6 +68,9 @@ static inline DATA_TYPE glue(io_read, SUFFIX)(target_phys_addr_t physaddr, 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 @@ static inline void glue(io_write, SUFFIX)(target_phys_addr_t physaddr, 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 450dd8cbe..eca3993b9 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -522,6 +522,7 @@ typedef struct CPUX86State { #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 @@ void cpu_x86_update_cr0(CPUX86State *env, uint32_t new_cr0); #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"