qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: spice-devel <spice-devel@lists.freedesktop.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] paravirtual mouse/tablet
Date: Thu, 13 Jan 2011 09:52:03 -0600	[thread overview]
Message-ID: <4D2F1FA3.5030701@codemonkey.ws> (raw)
In-Reply-To: <4D2ED1C8.7070304@redhat.com>

On 01/13/2011 04:19 AM, Gerd Hoffmann wrote:
>   Hi,
>
> Just throwing a quick writeup into the ring to kickstart the design 
> discussion ;)
>
> cheers,
>   Gerd
> #ifndef __QEMU_PVTABLET__
> #define __QEMU_PVTABLET__ 1
>
> /*
>   * qemu patavirtual tablet interface
>   */
>
> #include<inttypes.h>
>
> /* our virtio-serial channel */
> #define QEMU_PVTABLET_NAME "org.qemu.pvtablet.0"
>
> enum qemu_pvtablet_buttons {
>      QEMU_PVTABLET_BTN_LEFT,
>      QEMU_PVTABLET_BTN_RIGHT,
>      QEMU_PVTABLET_BTN_MIDDLE,
>      /*
>       * we can handle up to 32 buttons although
>       * not every has a individual name;)
>       */
> };
>
> /* send button down+up events */
> typedef struct qemu_pvtablet_button {
>      uint32_t button;
>      uint32_t mask;
> } qemu_pvtablet_button;
>
> /* send pointer move events */
> typedef struct qemu_pvtablet_position {
>      uint32_t pos_x;  /* range: 0 ->  0xffff */
>      uint32_t pos_y;  /* range: 0 ->  0xffff */
> } qemu_pvtablet_position;
>
>    

Let's add feature negotiation and not hardcode the resolution.

typedef enum qemu_pvtablet_features {
     /* None yet */
};

/* host->guest, sent before any other events */
typedef struct qemu_pvtablet_init {
     uint32_t res_x;   /* x axis resolution */
     uint32_t res_y;   /* y axis resolution */
     uint32_t features;  /* qemu_pvtablet_features */
} qemu_pvtablet_init;

/* guest->host, sent after pvtablet_init.  host will not send additional 
messages until this is received */
typedef struct qemu_pvtablet_ack {
     uint32_t features; /* qemu_pvtable_features */
};


> enum qemu_pvtablet_type {
>      QEMU_PVTABLET_MSG_MOVE,     /* qemu_pvtablet_position */
>      QEMU_PVTABLET_MSG_BTN_DOWN, /* qemu_pvtablet_button */
>      QEMU_PVTABLET_MSG_BTN_UP,   /* qemu_pvtablet_button */
>    
        QEMU_PVTABLET_MSG_INIT,   /* qemu_pvtable_init */
        QEMU_PVTABLE_MSG_ACK, /* qemu_pvtable_ack */

Regards,

Anthony Liguori

> };
>
> typedef struct qemu_pvtablet_message {
>      uint32_t size;            /* whole message size */
>      uint32_t type;            /* qemu_pvtablet_type */
>      uint64_t tv_secs;
>      uint64_t tv_usecs;
>      union {
>          qemu_pvtablet_position position;
>          qemu_pvtablet_button   button;
>          qemu_pvtablet_display  display;
>      } m;
> } qemu_pvtablet_message;
>    



> #endif /* __QEMU_PVTABLET__ */
>    

  parent reply	other threads:[~2011-01-13 15:53 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-13 10:19 [Qemu-devel] paravirtual mouse/tablet Gerd Hoffmann
2011-01-13 11:01 ` [Qemu-devel] Re: [Spice-devel] " Stefan Hajnoczi
2011-01-13 11:51   ` Gerd Hoffmann
2011-01-13 15:55     ` Anthony Liguori
2011-01-13 17:08       ` Gerd Hoffmann
2011-01-13 20:41         ` Anthony Liguori
2011-01-14  8:49           ` Gerd Hoffmann
2011-01-14 10:48             ` Daniel P. Berrange
2011-01-14 14:14               ` Anthony Liguori
2011-01-14 14:28               ` Alon Levy
2011-01-14 14:52                 ` Daniel P. Berrange
2011-01-14 16:10                   ` [Spice-devel] [Qemu-devel] " Alon Levy
2011-01-13 15:52 ` Anthony Liguori [this message]
2011-01-13 16:14   ` [Qemu-devel] " Avi Kivity
2011-01-13 16:39     ` Anthony Liguori
2011-01-13 17:09       ` Paolo Bonzini
2011-01-13 20:38         ` Anthony Liguori
2011-01-13 17:13       ` Alexander Graf
2011-01-13 20:43         ` Anthony Liguori
2011-01-14 11:27         ` Gerd Hoffmann
2011-01-14 14:36           ` Alexander Graf
2011-01-14 14:56             ` [Spice-devel] " Frédéric Grelot
2011-01-14 15:13             ` Gerd Hoffmann
2011-01-14 15:28               ` Alexander Graf
2011-01-14 15:44                 ` Alexander Graf
2011-01-14 16:31                   ` Gerd Hoffmann
2011-01-14 16:42                     ` Alexander Graf
2011-01-17  7:48                       ` Gerd Hoffmann
2011-01-18 19:57                         ` Alexander Graf
2011-01-15 12:07               ` Alon Levy
2011-01-14 15:37             ` Anthony Liguori
2011-01-14 16:26               ` Gerd Hoffmann
2011-01-14 17:02               ` Peter Maydell
2011-01-17  8:14                 ` Gerd Hoffmann
2011-01-13 16:18 ` Avi Kivity
2011-01-13 16:43   ` Anthony Liguori
2011-01-13 17:19   ` Gerd Hoffmann
2011-01-13 19:21     ` Avi Kivity
2011-01-13 19:55 ` [Qemu-devel] Re: [Spice-devel] " Alon Levy

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=4D2F1FA3.5030701@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=spice-devel@lists.freedesktop.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).