From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Miki Mishael <mmishael@redhat.com>, qemu-devel@nongnu.org
Cc: Yan Vugenfirer <yvugenfi@redhat.com>,
Dmitry Fleytman <dfleytma@redhat.com>,
Ronen Hod <rhod@redhat.com>,
Anthony Liguori <aliguori@amazon.com>,
Adam Litke <aglitke@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH V2] qemu-ga: isa-serial support on Windows
Date: Sun, 23 Feb 2014 19:00:02 -0600 [thread overview]
Message-ID: <20140224010002.3593.23272@loki> (raw)
In-Reply-To: <1389778424-4482-2-git-send-email-mmishael@redhat.com>
Quoting Miki Mishael (2014-01-15 03:33:44)
> Add support for isa-serial method for qemu-ga on Windows,
> Added -p command line parameter for serial port name
> specification, e.g. "-p COM15".
>
> Signed-off-by: Miki Mishael <mmishael@redhat.com>
> Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
Thanks, applied to qga tree:
https://github.com/mdroth/qemu/commits/qga
> ---
> qga/channel-win32.c | 20 ++++++++++++++++++--
> qga/main.c | 12 +++++++++---
> 2 files changed, 27 insertions(+), 5 deletions(-)
>
> diff --git a/qga/channel-win32.c b/qga/channel-win32.c
> index 8a303f3..0d5e5f5 100644
> --- a/qga/channel-win32.c
> +++ b/qga/channel-win32.c
> @@ -287,12 +287,22 @@ GIOStatus ga_channel_write_all(GAChannel *c, const char *buf, size_t size)
> static gboolean ga_channel_open(GAChannel *c, GAChannelMethod method,
> const gchar *path)
> {
> - if (method != GA_CHANNEL_VIRTIO_SERIAL) {
> + COMMTIMEOUTS comTimeOut = {0};
> + gchar newpath[MAXPATHLEN] = {0};
> + comTimeOut.ReadIntervalTimeout = 1;
> +
> + if (method != GA_CHANNEL_VIRTIO_SERIAL && method != GA_CHANNEL_ISA_SERIAL) {
> g_critical("unsupported communication method");
> return false;
> }
>
> - c->handle = CreateFile(path, GENERIC_READ | GENERIC_WRITE, 0, NULL,
> + if (method == GA_CHANNEL_ISA_SERIAL){
> + snprintf(newpath, sizeof(newpath), "\\\\.\\%s", path);
> + }else {
> + g_strlcpy(newpath, path, sizeof(newpath));
> + }
> +
> + c->handle = CreateFile(newpath, GENERIC_READ | GENERIC_WRITE, 0, NULL,
> OPEN_EXISTING,
> FILE_FLAG_NO_BUFFERING | FILE_FLAG_OVERLAPPED, NULL);
> if (c->handle == INVALID_HANDLE_VALUE) {
> @@ -300,6 +310,12 @@ static gboolean ga_channel_open(GAChannel *c, GAChannelMethod method,
> return false;
> }
>
> + if (method == GA_CHANNEL_ISA_SERIAL && !SetCommTimeouts(c->handle,&comTimeOut)) {
> + g_critical("error setting timeout for com port: %lu",GetLastError());
> + CloseHandle(c->handle);
> + return false;
> + }
> +
> return true;
> }
>
> diff --git a/qga/main.c b/qga/main.c
> index c58b26a..c0b09ad 100644
> --- a/qga/main.c
> +++ b/qga/main.c
> @@ -47,9 +47,11 @@
> #ifndef _WIN32
> #define QGA_VIRTIO_PATH_DEFAULT "/dev/virtio-ports/org.qemu.guest_agent.0"
> #define QGA_STATE_RELATIVE_DIR "run"
> +#define QGA_SERIAL_PATH_DEFAULT "/dev/ttyS0"
> #else
> #define QGA_VIRTIO_PATH_DEFAULT "\\\\.\\Global\\org.qemu.guest_agent.0"
> #define QGA_STATE_RELATIVE_DIR "qemu-ga"
> +#define QGA_SERIAL_PATH_DEFAULT "COM1"
> #endif
> #ifdef CONFIG_FSFREEZE
> #define QGA_FSFREEZE_HOOK_DEFAULT CONFIG_QEMU_CONFDIR "/fsfreeze-hook"
> @@ -659,12 +661,16 @@ static gboolean channel_init(GAState *s, const gchar *method, const gchar *path)
> }
>
> if (path == NULL) {
> - if (strcmp(method, "virtio-serial") != 0) {
> + if (strcmp(method, "virtio-serial") == 0 ) {
> + /* try the default path for the virtio-serial port */
> + path = QGA_VIRTIO_PATH_DEFAULT;
> + } else if (strcmp(method, "isa-serial") == 0){
> + /* try the default path for the serial port - COM1 */
> + path = QGA_SERIAL_PATH_DEFAULT;
> + } else {
> g_critical("must specify a path for this channel");
> return false;
> }
> - /* try the default path for the virtio-serial port */
> - path = QGA_VIRTIO_PATH_DEFAULT;
> }
>
> if (strcmp(method, "virtio-serial") == 0) {
> --
> 1.8.3.1
next prev parent reply other threads:[~2014-02-24 1:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-15 9:33 [Qemu-devel] [PATCH V2] qemu-ga: isa-serial support on Windows Miki Mishael
2014-01-15 9:33 ` Miki Mishael
2014-02-24 1:00 ` Michael Roth [this message]
2014-02-05 18:21 ` Miki Mishael
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140224010002.3593.23272@loki \
--to=mdroth@linux.vnet.ibm.com \
--cc=aglitke@linux.vnet.ibm.com \
--cc=aliguori@amazon.com \
--cc=dfleytma@redhat.com \
--cc=mmishael@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rhod@redhat.com \
--cc=yvugenfi@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.