fprintf(stderr, "Failed CreateEvent\n");
goto fail;
}
-
- s->hcom = CreateFile(filename, GENERIC_READ|GENERIC_WRITE, 0, NULL,
+#ifndef CONFIG_MARU
+ s->hcom = CreateFile(filename,
+ GENERIC_READ|GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
+#else
+ int open_flags = O_BINARY | O_RDWR;
+ // TODO : FILE_FLAG_OVERLAPPED
+
+ int ret = qemu_open(filename, open_flags, 0644);
+ if (ret < 0) {
+ error_report("win_chr_init failed(%d) \n", ret);
+ return -errno;
+ }
+ s->hcom = (HANDLE)_get_osfhandle(ret);
+
+#endif
if (s->hcom == INVALID_HANDLE_VALUE) {
fprintf(stderr, "Failed CreateFile (%lu)\n", GetLastError());
s->hcom = NULL;
return qemu_chr_open_win_file(GetStdHandle(STD_OUTPUT_HANDLE));
}
+<<<<<<< HEAD
+static CharDriverState *qemu_chr_open_win_file_out(QemuOpts *opts)
+{
+ const char *file_out = qemu_opt_get(opts, "path");
+ HANDLE fd_out;
+
+#ifndef CONFIG_MARU
+ fd_out = CreateFile(file_out, GENERIC_WRITE, FILE_SHARE_READ, NULL,
+ OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+#else
+ int open_flags = O_BINARY | O_RDWR | O_CREAT | O_TRUNC;
+
+ int ret = qemu_open(file_out, open_flags, 0644);
+ if (ret < 0) {
+ error_report("qemu_chr_open_win_file_out failed(%d) \n", ret);
+ return -errno;
+ }
+ fd_out = (HANDLE)_get_osfhandle(ret);
+
+#endif
+
+ if (fd_out == INVALID_HANDLE_VALUE) {
+ return NULL;
+ }
+
+ return qemu_chr_open_win_file(fd_out);
+}
+
+=======
+>>>>>>> test1.5
static int win_stdio_write(CharDriverState *chr, const uint8_t *buf, int len)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);