From: Julian Seward Date: Fri, 13 Jul 2012 13:15:10 +0000 (+0000) Subject: Add ioctl wrappers for "Linux user input device". Fixes #296229. X-Git-Tag: svn/VALGRIND_3_8_0~131 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=620ac7393807e51223b9305200b5e6e69077af45;p=thirdparty%2Fvalgrind.git Add ioctl wrappers for "Linux user input device". Fixes #296229. (Chase Douglas, chase.douglas@canonical.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12737 --- diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index edbd61c62b..5b3a34d59b 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -4215,6 +4215,10 @@ PRE(sys_ioctl) /* 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 @@ PRE(sys_ioctl) } 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: diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h index e90f1e6316..0a54db0ff3 100644 --- a/include/vki/vki-linux.h +++ b/include/vki/vki-linux.h @@ -2990,6 +2990,25 @@ struct vki_hwtstamp_config { 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 /*--------------------------------------------------------------------*/