|
From: <sv...@va...> - 2014-06-26 11:44:54
|
Author: tom
Date: Thu Jun 26 11:44:46 2014
New Revision: 14109
Log:
Handle the HCIGETDEVLIST ioctl.
Based on patch from Tomasz Nowak via BZ#335034.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
trunk/include/vki/vki-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 11:44:46 2014
@@ -160,6 +160,7 @@
334705 sendmsg and recvmsg should guard against bogus msghdr fields.
334727 Build fails with -Werror=format-security
334788 clarify doc about --log-file initial program directory
+335034 Unhandled ioctl: HCIGETDEVLIST
335155 vgdb, fix error print statement.
335262 arm64: movi 8bit version is not supported
335263 arm64: dmb instruction is not implemented
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Jun 26 11:44:46 2014
@@ -6903,6 +6903,17 @@
break;
# endif /* defined(VGPV_*_linux_android) */
+ case VKI_HCIGETDEVLIST:
+ if (ARG3) {
+ struct vki_hci_dev_list_req* dlr = (struct vki_hci_dev_list_req*)ARG3;
+ PRE_MEM_READ("ioctl(HCIGETDEVLIST)",
+ (Addr)ARG3, sizeof(struct vki_hci_dev_list_req));
+ PRE_MEM_WRITE("ioctl(HCIGETDEVLIST)",
+ (Addr)ARG3 + sizeof(struct vki_hci_dev_list_req),
+ dlr->dev_num * sizeof(struct vki_hci_dev_req));
+ }
+ break;
+
case VKI_HCIINQUIRY:
if (ARG3) {
struct vki_hci_inquiry_req* ir = (struct vki_hci_inquiry_req*)ARG3;
@@ -8005,6 +8016,14 @@
break;
# endif /* defined(VGPV_*_linux_android) */
+ case VKI_HCIGETDEVLIST:
+ if (ARG3) {
+ struct vki_hci_dev_list_req* dlr = (struct vki_hci_dev_list_req*)ARG3;
+ POST_MEM_WRITE((Addr)ARG3 + sizeof(struct vki_hci_dev_list_req),
+ dlr->dev_num * sizeof(struct vki_hci_dev_req));
+ }
+ break;
+
case VKI_HCIINQUIRY:
if (ARG3) {
struct vki_hci_inquiry_req* ir = (struct vki_hci_inquiry_req*)ARG3;
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 11:44:46 2014
@@ -168,7 +168,6 @@
========================================================================
========================================================================
-335034 Unhandled ioctl: HCIGETDEVLIST
334936 patch to fix false positives on alsa SNDRV_CTL_* ioctls
333628 Out of tree build (is fixed, but needs to land)
335143 Capabilities not supported
@@ -180,7 +179,6 @@
334802 valgrind does not always explain why a given option is bad
334834 PPC64 Little Endian support, patch 2
334836 PPC64 Little Endian support, patch 3 testcase fixes
-335034 Unhandled ioctl: HCIGETDEVLIST
335353 expected output of exp-sgcheck/tests/hackedbz2 mismatch with gcc 4.8.1
335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind (patch)
249435 Analyzing wine programs with callgrind triggers a crash (NEEDS CLOSE)
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Thu Jun 26 11:44:46 2014
@@ -2956,6 +2956,17 @@
#define VKI_HCIDEVRESTAT _VKI_IOW('H', 204, int)
#define VKI_HCIGETDEVLIST _VKI_IOR('H', 210, int)
+
+struct vki_hci_dev_req {
+ __vki_u16 dev_id;
+ __vki_u32 dev_opt;
+};
+
+struct vki_hci_dev_list_req {
+ __vki_u16 dev_num;
+ struct vki_hci_dev_req dev_req[0]; /* hci_dev_req structures */
+};
+
#define VKI_HCIGETDEVINFO _VKI_IOR('H', 211, int)
#define VKI_HCIGETCONNLIST _VKI_IOR('H', 212, int)
#define VKI_HCIGETCONNINFO _VKI_IOR('H', 213, int)
|