|
From: <sv...@va...> - 2012-07-13 13:15:20
|
sewardj 2012-07-13 14:15:10 +0100 (Fri, 13 Jul 2012)
New Revision: 12737
Log:
Add ioctl wrappers for "Linux user input device". Fixes #296229.
(Chase Douglas, cha...@ca...)
Modified files:
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/include/vki/vki-linux.h
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c (+18 -0)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2012-07-13 13:58:55 +01:00 (rev 12736)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2012-07-13 14:15:10 +01:00 (rev 12737)
@@ -4215,6 +4215,10 @@
/* KVM ioctls that dont check for a numeric value as parameter */
case VKI_KVM_S390_ENABLE_SIE:
case VKI_KVM_S390_INITIAL_RESET:
+
+ /* User input device creation */
+ case VKI_UI_DEV_CREATE:
+ case VKI_UI_DEV_DESTROY:
PRINT("sys_ioctl ( %ld, 0x%lx )",ARG1,ARG2);
PRE_REG_READ2(long, "ioctl",
unsigned int, fd, unsigned int, request);
@@ -5350,6 +5354,20 @@
}
break;
+ /* User input device creation */
+ case VKI_UI_SET_EVBIT:
+ case VKI_UI_SET_KEYBIT:
+ case VKI_UI_SET_RELBIT:
+ case VKI_UI_SET_ABSBIT:
+ case VKI_UI_SET_MSCBIT:
+ case VKI_UI_SET_LEDBIT:
+ case VKI_UI_SET_SNDBIT:
+ case VKI_UI_SET_FFBIT:
+ case VKI_UI_SET_SWBIT:
+ case VKI_UI_SET_PROPBIT:
+ /* These just take an int by value */
+ break;
+
# if defined(VGPV_arm_linux_android)
/* ashmem */
case VKI_ASHMEM_GET_SIZE:
Modified: trunk/include/vki/vki-linux.h (+19 -0)
===================================================================
--- trunk/include/vki/vki-linux.h 2012-07-13 13:58:55 +01:00 (rev 12736)
+++ trunk/include/vki/vki-linux.h 2012-07-13 14:15:10 +01:00 (rev 12737)
@@ -2990,6 +2990,25 @@
int rx_filter;
};
+//----------------------------------------------------------------------
+// From linux-2.6.12-rc2/include/linux/uinput.h
+//----------------------------------------------------------------------
+
+#define VKI_UINPUT_IOCTL_BASE 'U'
+#define VKI_UI_DEV_CREATE _VKI_IO(VKI_UINPUT_IOCTL_BASE, 1)
+#define VKI_UI_DEV_DESTROY _VKI_IO(VKI_UINPUT_IOCTL_BASE, 2)
+
+#define VKI_UI_SET_EVBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 100, int)
+#define VKI_UI_SET_KEYBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 101, int)
+#define VKI_UI_SET_RELBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 102, int)
+#define VKI_UI_SET_ABSBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 103, int)
+#define VKI_UI_SET_MSCBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 104, int)
+#define VKI_UI_SET_LEDBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 105, int)
+#define VKI_UI_SET_SNDBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 106, int)
+#define VKI_UI_SET_FFBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 107, int)
+#define VKI_UI_SET_SWBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 109, int)
+#define VKI_UI_SET_PROPBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 110, int)
+
#endif // __VKI_LINUX_H
/*--------------------------------------------------------------------*/
|