From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35476) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UDEbD-0007oT-VS for qemu-devel@nongnu.org; Wed, 06 Mar 2013 08:41:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UDEb7-0005eA-B2 for qemu-devel@nongnu.org; Wed, 06 Mar 2013 08:41:39 -0500 Received: from e28smtp01.in.ibm.com ([122.248.162.1]:57781) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UDEb6-0005db-OP for qemu-devel@nongnu.org; Wed, 06 Mar 2013 08:41:33 -0500 Received: from /spool/local by e28smtp01.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 6 Mar 2013 19:08:12 +0530 Received: from d28relay02.in.ibm.com (d28relay02.in.ibm.com [9.184.220.59]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id D83D6E0053 for ; Wed, 6 Mar 2013 19:12:38 +0530 (IST) Received: from d28av05.in.ibm.com (d28av05.in.ibm.com [9.184.220.67]) by d28relay02.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r26DfMkX29687992 for ; Wed, 6 Mar 2013 19:11:22 +0530 Received: from d28av05.in.ibm.com (loopback [127.0.0.1]) by d28av05.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r26DfOdk028525 for ; Thu, 7 Mar 2013 00:41:25 +1100 Message-ID: <5137477E.3090404@linux.vnet.ibm.com> Date: Wed, 06 Mar 2013 21:41:18 +0800 From: Lei Li MIME-Version: 1.0 References: <1362574665-4709-1-git-send-email-lilei@linux.vnet.ibm.com> <1362574665-4709-2-git-send-email-lilei@linux.vnet.ibm.com> In-Reply-To: <1362574665-4709-2-git-send-email-lilei@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/4] qga: add windows implementation for guest-get-time List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com, mdroth@linux.vnet.ibm.com, Lei Li Ops, wrong patch set... will resend it. Sorry for the missending. :-( On 03/06/2013 08:57 PM, Lei Li wrote: > Signed-off-by: Lei Li > --- > qga/commands-win32.c | 28 ++++++++++++++++++++++++++++ > 1 files changed, 28 insertions(+), 0 deletions(-) > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c > index 7e8ecb3..4febec7 100644 > --- a/qga/commands-win32.c > +++ b/qga/commands-win32.c > @@ -22,6 +22,8 @@ > #define SHTDN_REASON_FLAG_PLANNED 0x80000000 > #endif > > +#define _W32_FT_OFFSET (116444736000000000ULL) > + > static void acquire_privilege(const char *name, Error **err) > { > HANDLE token; > @@ -108,6 +110,32 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **err) > } > } > > +int64_t qmp_guest_get_time(Error **errp) > +{ > + SYSTEMTIME *ts = g_malloc0(sizeof(SYSTEMTIME)); > + int64_t time_ns; > + union { > + UINT64 ns100; > + FILETIME tf; > + } time; > + > + GetSystemTime(ts); > + if (!ts) { > + slog("guest-get-time failed: %d", GetLastError()); > + error_setg_errno(errp, errno, "Failed to get time"); > + return -1; > + } > + > + if (!SystemTimeToFileTime(ts, &time.tf)) { > + error_setg_errno(errp, errno, "Failed to convert system time"); > + return -1; > + } > + > + time_ns = (int64_t)((time.ns100 - _W32_FT_OFFSET) * 100); > + > + return time_ns; > +} > + > int64_t qmp_guest_file_open(const char *path, bool has_mode, const char *mode, Error **err) > { > error_set(err, QERR_UNSUPPORTED); -- Lei