| 
									
										
										
										
											2010-06-10 11:42:16 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * win32 specific declarations | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (c) 2003-2008 Fabrice Bellard | 
					
						
							|  |  |  |  * Copyright (c) 2010 Jes Sorensen <Jes.Sorensen@redhat.com> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Permission is hereby granted, free of charge, to any person obtaining a copy | 
					
						
							|  |  |  |  * of this software and associated documentation files (the "Software"), to deal | 
					
						
							|  |  |  |  * in the Software without restriction, including without limitation the rights | 
					
						
							|  |  |  |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | 
					
						
							|  |  |  |  * copies of the Software, and to permit persons to whom the Software is | 
					
						
							|  |  |  |  * furnished to do so, subject to the following conditions: | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * The above copyright notice and this permission notice shall be included in | 
					
						
							|  |  |  |  * all copies or substantial portions of the Software. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
					
						
							|  |  |  |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
					
						
							|  |  |  |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | 
					
						
							|  |  |  |  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | 
					
						
							|  |  |  |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | 
					
						
							|  |  |  |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | 
					
						
							|  |  |  |  * THE SOFTWARE. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef QEMU_OS_WIN32_H
 | 
					
						
							|  |  |  | #define QEMU_OS_WIN32_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-27 09:04:57 +00:00
										 |  |  | #include <windows.h>
 | 
					
						
							|  |  |  | #include <winsock2.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-12 21:13:15 +02:00
										 |  |  | /* Workaround for older versions of MinGW. */ | 
					
						
							|  |  |  | #ifndef ECONNREFUSED
 | 
					
						
							|  |  |  | # define ECONNREFUSED WSAECONNREFUSED
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef EINPROGRESS
 | 
					
						
							|  |  |  | # define EINPROGRESS  WSAEINPROGRESS
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef EHOSTUNREACH
 | 
					
						
							|  |  |  | # define EHOSTUNREACH WSAEHOSTUNREACH
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef EINTR
 | 
					
						
							|  |  |  | # define EINTR        WSAEINTR
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef EINPROGRESS
 | 
					
						
							|  |  |  | # define EINPROGRESS  WSAEINPROGRESS
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef ENETUNREACH
 | 
					
						
							|  |  |  | # define ENETUNREACH  WSAENETUNREACH
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef ENOTCONN
 | 
					
						
							|  |  |  | # define ENOTCONN     WSAENOTCONN
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef EWOULDBLOCK
 | 
					
						
							|  |  |  | # define EWOULDBLOCK  WSAEWOULDBLOCK
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-12 21:13:28 +02:00
										 |  |  | #if defined(_WIN64)
 | 
					
						
							|  |  |  | /* On w64, setjmp is implemented by _setjmp which needs a second parameter.
 | 
					
						
							|  |  |  |  * If this parameter is NULL, longjump does no stack unwinding. | 
					
						
							|  |  |  |  * That is what we need for QEMU. Passing the value of register rsp (default) | 
					
						
							|  |  |  |  * lets longjmp try a stack unwinding which will crash with generated code. */ | 
					
						
							|  |  |  | # undef setjmp
 | 
					
						
							|  |  |  | # define setjmp(env) _setjmp(env, NULL)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-15 09:51:59 +02:00
										 |  |  | /* Declaration of ffs() is missing in MinGW's strings.h. */ | 
					
						
							|  |  |  | int ffs(int i); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-22 22:26:19 +02:00
										 |  |  | /* Missing POSIX functions. Don't use MinGW-w64 macros. */ | 
					
						
							|  |  |  | #undef gmtime_r
 | 
					
						
							|  |  |  | struct tm *gmtime_r(const time_t *timep, struct tm *result); | 
					
						
							|  |  |  | #undef localtime_r
 | 
					
						
							|  |  |  | struct tm *localtime_r(const time_t *timep, struct tm *result); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-10 11:42:22 +02:00
										 |  |  | static inline void os_setup_signal_handling(void) {} | 
					
						
							| 
									
										
										
										
											2010-06-10 11:42:28 +02:00
										 |  |  | static inline void os_daemonize(void) {} | 
					
						
							|  |  |  | static inline void os_setup_post(void) {} | 
					
						
							| 
									
										
										
										
											2010-10-07 18:55:48 +02:00
										 |  |  | void os_set_line_buffering(void); | 
					
						
							| 
									
										
										
										
											2010-06-10 11:42:31 +02:00
										 |  |  | static inline void os_set_proc_name(const char *dummy) {} | 
					
						
							| 
									
										
										
										
											2010-06-10 11:42:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-24 22:41:33 +02:00
										 |  |  | #if !defined(EPROTONOSUPPORT)
 | 
					
						
							|  |  |  | # define EPROTONOSUPPORT EINVAL
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-26 10:39:23 +02:00
										 |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-15 01:15:41 +09:00
										 |  |  | static inline bool is_daemonized(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return false; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-10 11:42:16 +02:00
										 |  |  | #endif
 |