[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Access to raw keycodes in xen domU


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: "Maxim Gorbachyov" <maxim.gorbachyov@xxxxxxxxx>
  • Date: Thu, 14 Aug 2008 17:58:44 +0400
  • Delivery-date: Thu, 14 Aug 2008 06:59:09 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=box2VpRdMF7l6c1SnAyZM+iuFbqrZJA8f+5++ZPrzsLBxpzMjJCRaA5dWKGp2F4TYr uxd2gSQwT6NpZVFH52c6HkczuAW6Fwsr4u58kvOPwJCV9wYSyEMek0o0x46+bIRdtjKQ FB6ZTLGQmy38oeQ8Ru/bW56OSDtuN+n69XSjk=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi.

There is a need to have access to raw keycodes in xen domU (like
showkey (1)). Using xen-hypervisor-3.2 and linux-2.6.18-xen-3.2.0 with
these parameters:

kernel = "/my/vmlinuz"
memory = 128
name = "dn1"
vif = [ '' ]
disk = [ 'tap:aio:/my/img,hda1,w' ]
root = "/dev/hda1 ro"
extra = "2 xencons=tty"

I run "# strace showkey" inside domU and get this:
...
open("/dev/tty", O_RDWR)                = 3
ioctl(3, KDGKBTYPE, 0x7fff91e9da17)     = -1 EINVAL (Invalid argument)
...

Indeed there is no ioctl() implementation assigned to
xencons_ops.ioctl in
linux-2.6.18-xen-3.2.0/drivers/xen/console/console.c

I've tried assigning xencons_ops.ioctl to something like that:

static int xencons_ioctl(struct tty_struct *tty, struct file * file,
        unsigned int cmd, unsigned long arg)
{
        unsigned char ucval;
        long val;

        switch (cmd) {
        case KDGKBTYPE:
                ucval = KB_101;
                return put_user(ucval, (char __user *)arg);

        case KDGKBMODE:
                val = K_UNICODE;
                return put_user(val, (long __user *)arg);

        case KDSKBMODE:
                return 0;
        }
        return -ENOIOCTLCMD;
}

It's enough to make showkey run, but it does not report correct
keycodes. I think I have to do something like

HYPERVISOR_console_io(CONSOLEIO_ioctl, ... )

but there is no CONSOLEIO_ioctl.

Could you please suggest what can I do to access raw keycodes?

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.