From 6925e7621b70111f4bf227e3addb5b755c28082d Mon Sep 17 00:00:00 2001 From: SeokYeon Hwang Date: Wed, 2 Jul 2014 18:49:28 +0900 Subject: [PATCH] qemu-char: modify logic for kernel logging Using "CreateFile()" to open log file on Windows. Change-Id: Iea947257373c980c08f019b5690f789f157c2a14 Signed-off-by: SeokYeon Hwang --- qemu-char.c | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index fc17c8c1e7..72e5e65075 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -1660,9 +1660,6 @@ static int win_chr_init(CharDriverState *chr, const char *filename) COMSTAT comstat; DWORD size; DWORD err; -#ifdef CONFIG_MARU - int open_flags, ret; -#endif s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL); if (!s->hsend) { @@ -1674,21 +1671,9 @@ static int win_chr_init(CharDriverState *chr, const char *filename) fprintf(stderr, "Failed CreateEvent\n"); goto fail; } -#ifndef CONFIG_MARU s->hcom = CreateFile(filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); -#else - open_flags = O_BINARY | O_RDWR; - // TODO : FILE_FLAG_OVERLAPPED - - ret = qemu_open(filename, open_flags, 0644); - if (ret < 0) { - fprintf(stderr, "win_chr_init failed(%d)\n", ret); - goto fail; - } - s->hcom = (HANDLE)_get_osfhandle(ret); -#endif if (s->hcom == INVALID_HANDLE_VALUE) { fprintf(stderr, "Failed CreateFile (%lu)\n", GetLastError()); s->hcom = NULL; @@ -3591,26 +3576,18 @@ QemuOptsList qemu_chardev_opts = { static CharDriverState *qmp_chardev_open_file(ChardevFile *file, Error **errp) { HANDLE out; -#ifdef CONFIG_MARU - int open_flags, ret; -#endif if (file->has_in) { error_setg(errp, "input file not supported"); return NULL; } -#ifndef CONFIG_MARU +#ifdef CONFIG_MARU out = CreateFile(file->out, GENERIC_WRITE, FILE_SHARE_READ, NULL, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); #else - open_flags = O_BINARY | O_RDWR | O_CREAT | O_TRUNC; - ret = qemu_open(file->out, open_flags, 0644); - if (ret < 0) { - error_setg(errp, "qemu_chr_open_win_file_out failed(%d)", ret); - return NULL; - } - out = (HANDLE)_get_osfhandle(ret); + out = CreateFile(file->out, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); #endif if (out == INVALID_HANDLE_VALUE) { error_setg(errp, "open %s failed", file->out); -- 2.34.1