qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 11/16] hw/i386/vmport: Add support for CMD_GETTIMEFULL


From: Liran Alon
Subject: Re: [PATCH v3 11/16] hw/i386/vmport: Add support for CMD_GETTIMEFULL
Date: Fri, 13 Mar 2020 17:26:32 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.5.0


On 13/03/2020 2:06, Michael S. Tsirkin wrote:
On Thu, Mar 12, 2020 at 06:54:26PM +0200, Liran Alon wrote:
Similar to CMD_GETTIME but lacks the 136-year overflow issue,
by returning full 64-bit of host uSeconds.

Reviewed-by: Nikita Leshenko <address@hidden>
Signed-off-by: Liran Alon <address@hidden>
---
  hw/i386/vmport.c         | 17 +++++++++++++++++
  include/hw/i386/vmport.h |  1 +
  2 files changed, 18 insertions(+)

diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c
index c5b659c59343..7e57eda4b526 100644
--- a/hw/i386/vmport.c
+++ b/hw/i386/vmport.c
@@ -183,6 +183,22 @@ static uint32_t vmport_cmd_time(void *opaque, uint32_t 
addr)
      return (uint32_t)tv.tv_sec;
  }
+static uint32_t vmport_cmd_time_full(void *opaque, uint32_t addr)
+{
+    X86CPU *cpu = X86_CPU(current_cpu);
+    qemu_timeval tv;
+
+    if (qemu_gettimeofday(&tv) < 0) {
+        return UINT32_MAX;
+    }
+
+    cpu->env.regs[R_ESI] = (uint32_t)((uint64_t)tv.tv_sec >> 32);
+    cpu->env.regs[R_EDX] = (uint32_t)tv.tv_sec;
+    cpu->env.regs[R_EBX] = (uint32_t)tv.tv_usec;
+    cpu->env.regs[R_ECX] = port_state->max_time_lag_us;
+    return VMPORT_MAGIC;
+}
+
  /* vmmouse helpers */
  void vmmouse_get_data(uint32_t *data)
  {
And with usec precision, same comments apply in an even stronger way.

Please tell me if you still have specific question or comment on this after ready my reply to the previous patch.
i.e. Something I should handle regarding this patch on v4.

Thanks,
-Liran





reply via email to

[Prev in Thread] Current Thread [Next in Thread]