X-Git-Url: https://repo.jachan.dev/qemu.git/blobdiff_plain/28c05edff54ce583e89d09c9237acff20e9bd48f..99221256151845f5eb4cedac750b08e7ab14d92d:/os-win32.c diff --git a/os-win32.c b/os-win32.c index 5f95caac15..e31c921983 100644 --- a/os-win32.c +++ b/os-win32.c @@ -22,43 +22,16 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + +#include "qemu/osdep.h" #include #include -#include -#include -#include -#include -#include -#include -#include "config-host.h" -#include "sysemu/sysemu.h" -#include "qemu-options.h" - -/***********************************************************/ -/* Functions missing in mingw */ - -int setenv(const char *name, const char *value, int overwrite) -{ - int result = 0; - if (overwrite || !getenv(name)) { - size_t length = strlen(name) + strlen(value) + 2; - char *string = g_malloc(length); - snprintf(string, length, "%s=%s", name, value); - result = putenv(string); - - /* Windows takes a copy and does not continue to use our string. - * Therefore it can be safely freed on this platform. POSIX code - * typically has to leak the string because according to the spec it - * becomes part of the environment. - */ - g_free(string); - } - return result; -} +#include "qemu-common.h" +#include "sysemu/runstate.h" static BOOL WINAPI qemu_ctrl_handler(DWORD type) { - qemu_system_shutdown_request(); + qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_SIGNAL); /* Windows 7 kills application when the function returns. Sleep here to give QEMU a try for closing. Sleep period is 10000ms because Windows kills the program @@ -83,12 +56,6 @@ void os_setup_early_signal_handling(void) atexit(os_undo_timer_resolution); } -/* Look for support files in the same directory as the executable. */ -char *os_find_datadir(void) -{ - return qemu_get_exec_dir(); -} - void os_set_line_buffering(void) { setbuf(stdout, NULL); @@ -99,37 +66,7 @@ void os_set_line_buffering(void) * Parse OS specific command line options. * return 0 if option handled, -1 otherwise */ -void os_parse_cmd_args(int index, const char *optarg) +int os_parse_cmd_args(int index, const char *optarg) { - return; -} - -void os_pidfile_error(void) -{ - fprintf(stderr, "Could not acquire pid file: %s\n", strerror(errno)); -} - -int qemu_create_pidfile(const char *filename) -{ - char buffer[128]; - int len; - HANDLE file; - OVERLAPPED overlap; - BOOL ret; - memset(&overlap, 0, sizeof(overlap)); - - file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - - if (file == INVALID_HANDLE_VALUE) { - return -1; - } - len = snprintf(buffer, sizeof(buffer), "%d\n", getpid()); - ret = WriteFile(file, (LPCVOID)buffer, (DWORD)len, - NULL, &overlap); - CloseHandle(file); - if (ret == 0) { - return -1; - } - return 0; + return -1; }