mirror of
https://github.com/qemu/qemu.git
synced 2024-11-27 05:43:47 +08:00
Move qemu_gettimeofday() to OS specific files
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
949d31e665
commit
dc786bc910
@ -33,10 +33,10 @@
|
||||
#define SEMIHOSTING_HEAP_SIZE (128 * 1024 * 1024)
|
||||
#else
|
||||
#include "qemu-common.h"
|
||||
#include "sysemu.h"
|
||||
#include "gdbstub.h"
|
||||
#include "softmmu-semi.h"
|
||||
#endif
|
||||
#include "sysemu.h"
|
||||
|
||||
#define HOSTED_EXIT 0
|
||||
#define HOSTED_INIT_SIM 1
|
||||
|
31
osdep.c
31
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
|
||||
|
15
osdep.h
15
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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -170,6 +170,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);
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "monitor.h"
|
||||
#include "qemu-timer.h"
|
||||
#include "qemu-log.h"
|
||||
#include "sysemu.h"
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user