#include "qemu/iov.h"
#include <windows.h>
#include <winioctl.h>
+#ifdef CONFIG_MARU
+#include <errno.h>
+#endif
#define FTYPE_FILE 0
#define FTYPE_CD 1
Error *local_err = NULL;
const char *filename;
int ret;
+#ifdef CONFIG_MARU
+ int open_flags;
+#endif
s->type = FTYPE_FILE;
goto fail;
}
#else
-#include <errno.h>
- int open_flags;
-
- open_flags = O_BINARY & ~O_ACCMODE;
- if (flags & BDRV_O_RDWR) {
- open_flags |= O_RDWR;
- } else {
- open_flags |= O_RDONLY;
- }
+ open_flags = O_BINARY & ~O_ACCMODE;
+ if (flags & BDRV_O_RDWR) {
+ open_flags |= O_RDWR;
+ } else {
+ open_flags |= O_RDONLY;
+ }
- /* Use O_DSYNC for write-through caching, no flags for write-back caching,
+ /* Use O_DSYNC for write-through caching, no flags for write-back caching,
* and O_DIRECT for no caching. */
- /*
- if ((flags & BDRV_O_NOCACHE)) {
- open_flags |= O_DIRECT;
- }
- if (!(flags & BDRV_O_CACHE_WB)) {
- open_flags |= O_DSYNC;
- }
- */
+ /*
+ if ((flags & BDRV_O_NOCACHE)) {
+ open_flags |= O_DIRECT;
+ }
+ if (!(flags & BDRV_O_CACHE_WB)) {
+ open_flags |= O_DSYNC;
+ }
+ */
+
+ if ((flags & BDRV_O_NATIVE_AIO) && aio == NULL) {
+ aio = win32_aio_init();
+ if (aio == NULL) {
+ ret = -EINVAL;
+ goto fail;
+ }
+ }
- if ((flags & BDRV_O_NATIVE_AIO) && aio == NULL) {
- aio = win32_aio_init();
- if (aio == NULL) {
- ret = -EINVAL;
- goto fail;
- }
- }
-
- ret = qemu_open(filename, open_flags, 0644);
- if (ret < 0) {
- error_report("raw_open failed(%d) \n", ret);
- return -errno;
- }
- s->hfile = (HANDLE)_get_osfhandle(ret);
+ ret = qemu_open(filename, open_flags, 0644);
+ if (ret < 0) {
+ error_report("raw_open failed(%d) \n", ret);
+ return -errno;
+ }
+ s->hfile = (HANDLE)_get_osfhandle(ret);
#endif
if (flags & BDRV_O_NATIVE_AIO) {
DWORD overlapped;
char device_name[64];
const char *filename = qdict_get_str(options, "filename");
+#ifdef CONFIG_MARU
+ int open_flags, ret;
+#endif
if (strstart(filename, "/dev/cdrom", NULL)) {
if (find_cdrom(device_name, sizeof(device_name)) < 0)
FILE_SHARE_READ, NULL,
create_flags, overlapped, NULL);
*/
-#include <errno.h>
-
- int open_flags = O_BINARY;
- open_flags &= ~O_ACCMODE;
- if (flags & BDRV_O_RDWR) {
- open_flags |= O_RDWR;
- } else {
- open_flags |= O_RDONLY;
- }
+ open_flags = (O_BINARY & ~O_ACCMODE);
+ if (flags & BDRV_O_RDWR) {
+ open_flags |= O_RDWR;
+ } else {
+ open_flags |= O_RDONLY;
+ }
- /* Use O_DSYNC for write-through caching, no flags for write-back caching,
+ /* Use O_DSYNC for write-through caching, no flags for write-back caching,
* and O_DIRECT for no caching. */
- /*
- if ((flags & BDRV_O_NOCACHE)) {
- open_flags |= O_DIRECT;
- }
- if (!(flags & BDRV_O_CACHE_WB)) {
- open_flags |= O_DSYNC;
- }
- */
+ /*
+ if ((flags & BDRV_O_NOCACHE)) {
+ open_flags |= O_DIRECT;
+ }
+ if (!(flags & BDRV_O_CACHE_WB)) {
+ open_flags |= O_DSYNC;
+ }
+ */
- int ret = qemu_open(filename, open_flags, 0644);
- if (ret < 0) {
- error_report("raw_open failed(%d) \n", ret);
- return -errno;
- }
- s->hfile = (HANDLE)_get_osfhandle(ret);
+ ret = qemu_open(filename, open_flags, 0644);
+ if (ret < 0) {
+ error_report("raw_open failed(%d) \n", ret);
+ return -errno;
+ }
+ s->hfile = (HANDLE)_get_osfhandle(ret);
#endif
return 0;
}
COMSTAT comstat;
DWORD size;
DWORD err;
+#ifdef CONFIG_MARU
+ int open_flags, ret;
+#endif
s->hsend = CreateEvent(NULL, TRUE, FALSE, NULL);
if (!s->hsend) {
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);
+ 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());
static CharDriverState *qmp_chardev_open_file(ChardevFile *file, Error **errp)
{
HANDLE out;
+#ifdef CONFIG_MARU
+ int open_flags, ret;
+#endif
if (file->in) {
error_setg(errp, "input file not supported");
out = CreateFile(file->out, GENERIC_WRITE, FILE_SHARE_READ, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
#else
- int open_flags, ret;
-
- open_flags = O_BINARY | O_RDWR | O_CREAT | O_TRUNC;
- 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;
- }
- out = (HANDLE)_get_osfhandle(ret);
+ 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);
#endif
if (out == INVALID_HANDLE_VALUE) {
error_setg(errp, "open %s failed", file->out);