[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-users] Access to raw keycodes in xen domU
Hello. 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; struct kbd_struct * kbd; unsigned int console; struct vc_data * vc; long val; vc = (struct vc_data *)tty->driver_data; console = vc->vc_num; kbd = kbd_table + console; switch (cmd) { case KDGKBTYPE: ucval = KB_101; return put_user(ucval, (char __user *)arg); case KDGKBMODE: val = ((kbd->kbdmode == VC_RAW) ? K_RAW : (kbd->kbdmode == VC_MEDIUMRAW) ? K_MEDIUMRAW : (kbd->kbdmode == VC_UNICODE) ? K_UNICODE : K_XLATE); return put_user(val, (long __user *)arg); } return -ENOIOCTLCMD; } , but I get tty->driver_data set to NULL. It seems like I have to get some data from hypervisor / dom0, but it's not clear for me now how to do it. Could you please suggest how to get that access? _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |