diff mbox

[5/9] Move qemu_gettimeofday() to OS specific files

Message ID 1287389754-985-6-git-send-email-Jes.Sorensen@redhat.com
State New
Headers show

Commit Message

Jes Sorensen Oct. 18, 2010, 8:15 a.m. UTC
From: Jes Sorensen <Jes.Sorensen@redhat.com>

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
 osdep.c            |   31 -------------------------------
 osdep.h            |   15 ---------------
 oslib-win32.c      |   27 +++++++++++++++++++++++++++
 posix-aio-compat.c |    1 +
 qemu-common.h      |    5 +++++
 qemu-img.c         |    1 +
 qemu-os-posix.h    |    3 +++
 qemu-os-win32.h    |    8 ++++++++
 qemu-tool.c        |    1 +
 9 files changed, 46 insertions(+), 46 deletions(-)

Comments

Blue Swirl Oct. 23, 2010, 2:42 p.m. UTC | #1
On Mon, Oct 18, 2010 at 8:15 AM,  <Jes.Sorensen@redhat.com> wrote:
> From: Jes Sorensen <Jes.Sorensen@redhat.com>
>
> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>

Almost there:
  CC    m68k-linux-user/m68k-semi.o
/src/qemu/m68k-semi.c: In function 'do_m68k_semihosting':
/src/qemu/m68k-semi.c:328: error: 'qemu_timeval' undeclared (first use
in this function)
/src/qemu/m68k-semi.c:328: error: (Each undeclared identifier is
reported only once
/src/qemu/m68k-semi.c:328: error: for each function it appears in.)
/src/qemu/m68k-semi.c:328: error: expected ';' before 'tv'
cc1: warnings being treated as errors
/src/qemu/m68k-semi.c:330: error: implicit declaration of function
'qemu_gettimeofday'
/src/qemu/m68k-semi.c:330: error: nested extern declaration of
'qemu_gettimeofday'
/src/qemu/m68k-semi.c:330: error: 'tv' undeclared (first use in this function)
Jes Sorensen Oct. 25, 2010, 7:39 a.m. UTC | #2
On 10/23/10 16:42, Blue Swirl wrote:
> On Mon, Oct 18, 2010 at 8:15 AM,  <Jes.Sorensen@redhat.com> wrote:
>> From: Jes Sorensen <Jes.Sorensen@redhat.com>
>>
>> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
> 
> Almost there:
>   CC    m68k-linux-user/m68k-semi.o
> /src/qemu/m68k-semi.c: In function 'do_m68k_semihosting':
> /src/qemu/m68k-semi.c:328: error: 'qemu_timeval' undeclared (first use
> in this function)
> /src/qemu/m68k-semi.c:328: error: (Each undeclared identifier is
> reported only once
> /src/qemu/m68k-semi.c:328: error: for each function it appears in.)
> /src/qemu/m68k-semi.c:328: error: expected ';' before 'tv'
> cc1: warnings being treated as errors
> /src/qemu/m68k-semi.c:330: error: implicit declaration of function
> 'qemu_gettimeofday'
> /src/qemu/m68k-semi.c:330: error: nested extern declaration of
> 'qemu_gettimeofday'
> /src/qemu/m68k-semi.c:330: error: 'tv' undeclared (first use in this function)

How are you configuring your build? m68k-semi.c builds fine for me here
with these patches applied:

  CC    m68k-softmmu/mcf_fec.o
  CC    m68k-softmmu/m68k-semi.o
  CC    m68k-softmmu/dummy_m68k.o
  LINK  m68k-softmmu/qemu-system-m68k

This is for target m68k-softmmu, are you using a different target?

Thanks,
Jes
Blue Swirl Oct. 25, 2010, 5:01 p.m. UTC | #3
On Mon, Oct 25, 2010 at 7:39 AM, Jes Sorensen <Jes.Sorensen@redhat.com> wrote:
> On 10/23/10 16:42, Blue Swirl wrote:
>> On Mon, Oct 18, 2010 at 8:15 AM,  <Jes.Sorensen@redhat.com> wrote:
>>> From: Jes Sorensen <Jes.Sorensen@redhat.com>
>>>
>>> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
>>
>> Almost there:
>>   CC    m68k-linux-user/m68k-semi.o
>> /src/qemu/m68k-semi.c: In function 'do_m68k_semihosting':
>> /src/qemu/m68k-semi.c:328: error: 'qemu_timeval' undeclared (first use
>> in this function)
>> /src/qemu/m68k-semi.c:328: error: (Each undeclared identifier is
>> reported only once
>> /src/qemu/m68k-semi.c:328: error: for each function it appears in.)
>> /src/qemu/m68k-semi.c:328: error: expected ';' before 'tv'
>> cc1: warnings being treated as errors
>> /src/qemu/m68k-semi.c:330: error: implicit declaration of function
>> 'qemu_gettimeofday'
>> /src/qemu/m68k-semi.c:330: error: nested extern declaration of
>> 'qemu_gettimeofday'
>> /src/qemu/m68k-semi.c:330: error: 'tv' undeclared (first use in this function)
>
> How are you configuring your build? m68k-semi.c builds fine for me here
> with these patches applied:

With no --target-list.

>  CC    m68k-softmmu/mcf_fec.o
>  CC    m68k-softmmu/m68k-semi.o
>  CC    m68k-softmmu/dummy_m68k.o
>  LINK  m68k-softmmu/qemu-system-m68k
>
> This is for target m68k-softmmu, are you using a different target?

m68k-linux-user
diff mbox

Patch

diff --git a/osdep.c b/osdep.c
index cb12e5f..b1664ac 100644
--- a/osdep.c
+++ b/osdep.c
@@ -111,37 +111,6 @@  int qemu_create_pidfile(const char *filename)
     return 0;
 }
 
-#ifdef _WIN32
-
-/* mingw32 needs ffs for compilations without optimization. */
-int ffs(int i)
-{
-    /* Use gcc's builtin ffs. */
-    return __builtin_ffs(i);
-}
-
-/* Offset between 1/1/1601 and 1/1/1970 in 100 nanosec units */
-#define _W32_FT_OFFSET (116444736000000000ULL)
-
-int qemu_gettimeofday(qemu_timeval *tp)
-{
-  union {
-    unsigned long long ns100; /*time since 1 Jan 1601 in 100ns units */
-    FILETIME ft;
-  }  _now;
-
-  if(tp)
-    {
-      GetSystemTimeAsFileTime (&_now.ft);
-      tp->tv_usec=(long)((_now.ns100 / 10ULL) % 1000000ULL );
-      tp->tv_sec= (long)((_now.ns100 - _W32_FT_OFFSET) / 10000000ULL);
-    }
-  /* Always return 0 as per Open Group Base Specifications Issue 6.
-     Do not set errno on error.  */
-  return 0;
-}
-#endif /* _WIN32 */
-
 
 /*
  * Opens a file with FD_CLOEXEC set
diff --git a/osdep.h b/osdep.h
index 6716281..8bd30d7 100644
--- a/osdep.h
+++ b/osdep.h
@@ -127,19 +127,4 @@  int qemu_madvise(void *addr, size_t len, int advice);
 
 int qemu_create_pidfile(const char *filename);
 
-#ifdef _WIN32
-int ffs(int i);
-
-int setenv(const char *name, const char *value, int overwrite);
-
-typedef struct {
-    long tv_sec;
-    long tv_usec;
-} qemu_timeval;
-int qemu_gettimeofday(qemu_timeval *tp);
-#else
-typedef struct timeval qemu_timeval;
-#define qemu_gettimeofday(tp) gettimeofday(tp, NULL);
-#endif /* !_WIN32 */
-
 #endif
diff --git a/oslib-win32.c b/oslib-win32.c
index 1ddd857..e03c472 100644
--- a/oslib-win32.c
+++ b/oslib-win32.c
@@ -92,3 +92,30 @@  int inet_aton(const char *cp, struct in_addr *ia)
 void qemu_set_cloexec(int fd)
 {
 }
+
+/* mingw32 needs ffs for compilations without optimization. */
+int ffs(int i)
+{
+    /* Use gcc's builtin ffs. */
+    return __builtin_ffs(i);
+}
+
+/* Offset between 1/1/1601 and 1/1/1970 in 100 nanosec units */
+#define _W32_FT_OFFSET (116444736000000000ULL)
+
+int qemu_gettimeofday(qemu_timeval *tp)
+{
+  union {
+    unsigned long long ns100; /*time since 1 Jan 1601 in 100ns units */
+    FILETIME ft;
+  }  _now;
+
+  if(tp) {
+      GetSystemTimeAsFileTime (&_now.ft);
+      tp->tv_usec=(long)((_now.ns100 / 10ULL) % 1000000ULL );
+      tp->tv_sec= (long)((_now.ns100 - _W32_FT_OFFSET) / 10000000ULL);
+  }
+  /* Always return 0 as per Open Group Base Specifications Issue 6.
+     Do not set errno on error.  */
+  return 0;
+}
diff --git a/posix-aio-compat.c b/posix-aio-compat.c
index 7b862b5..fa5494d 100644
--- a/posix-aio-compat.c
+++ b/posix-aio-compat.c
@@ -24,6 +24,7 @@ 
 
 #include "qemu-queue.h"
 #include "osdep.h"
+#include "sysemu.h"
 #include "qemu-common.h"
 #include "trace.h"
 #include "block_int.h"
diff --git a/qemu-common.h b/qemu-common.h
index 81aafa0..1f01a44 100644
--- a/qemu-common.h
+++ b/qemu-common.h
@@ -174,6 +174,11 @@  const char *path(const char *pathname);
 #define qemu_isascii(c)		isascii((unsigned char)(c))
 #define qemu_toascii(c)		toascii((unsigned char)(c))
 
+#ifdef _WIN32
+/* ffs() in oslib-win32.c for WIN32, strings.h for the rest of the world */
+int ffs(int i);
+#endif
+
 void *qemu_malloc(size_t size);
 void *qemu_realloc(void *ptr, size_t size);
 void *qemu_mallocz(size_t size);
diff --git a/qemu-img.c b/qemu-img.c
index 578b8eb..5b2bed3 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -24,6 +24,7 @@ 
 #include "qemu-common.h"
 #include "qemu-option.h"
 #include "osdep.h"
+#include "sysemu.h"
 #include "block_int.h"
 #include <stdio.h>
 
diff --git a/qemu-os-posix.h b/qemu-os-posix.h
index ed5c058..353f878 100644
--- a/qemu-os-posix.h
+++ b/qemu-os-posix.h
@@ -36,4 +36,7 @@  void os_setup_signal_handling(void);
 void os_daemonize(void);
 void os_setup_post(void);
 
+typedef struct timeval qemu_timeval;
+#define qemu_gettimeofday(tp) gettimeofday(tp, NULL)
+
 #endif
diff --git a/qemu-os-win32.h b/qemu-os-win32.h
index c63778d..1a07e5e 100644
--- a/qemu-os-win32.h
+++ b/qemu-os-win32.h
@@ -52,4 +52,12 @@  static inline void os_set_proc_name(const char *dummy) {}
 # define EPROTONOSUPPORT EINVAL
 #endif
 
+int setenv(const char *name, const char *value, int overwrite);
+
+typedef struct {
+    long tv_sec;
+    long tv_usec;
+} qemu_timeval;
+int qemu_gettimeofday(qemu_timeval *tp);
+
 #endif
diff --git a/qemu-tool.c b/qemu-tool.c
index b39af86..2f3db30 100644
--- a/qemu-tool.c
+++ b/qemu-tool.c
@@ -15,6 +15,7 @@ 
 #include "monitor.h"
 #include "qemu-timer.h"
 #include "qemu-log.h"
+#include "sysemu.h"
 
 #include <sys/time.h>