diff options
author | Ben Cheng <bccheng@google.com> | 2013-03-08 15:36:33 -0800 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2013-03-08 15:36:33 -0800 |
commit | 09529052b5d43a42bd0862262cbd4ee9e41ae4fe (patch) | |
tree | 2f31932d19ebeacab3e315da9631a77eee6959da | |
parent | ebdb3f93522726b6ea846621bb0c14a2cbba68ee (diff) | |
download | valgrind-09529052b5d43a42bd0862262cbd4ee9e41ae4fe.tar.gz |
Add missing ioctl used by N4 camera.
Change-Id: I9604881edc7e5266e5903fe8c655d51ccc4c5832
-rw-r--r-- | main/Android.mk | 2 | ||||
-rw-r--r-- | main/coregrind/m_syswrap/syswrap-linux.c | 18 | ||||
-rw-r--r-- | main/include/vki/vki-linux.h | 17 |
3 files changed, 37 insertions, 0 deletions
diff --git a/main/Android.mk b/main/Android.mk index 08db43ce7..8ac1d800a 100644 --- a/main/Android.mk +++ b/main/Android.mk @@ -46,6 +46,8 @@ ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),manta) ANDROID_HARDWARE := ANDROID_HARDWARE_nexus_10 else ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),grouper) ANDROID_HARDWARE := ANDROID_HARDWARE_nexus_7 +else ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),MAKO) +ANDROID_HARDWARE := ANDROID_HARDWARE_nexus_4 endif else diff --git a/main/coregrind/m_syswrap/syswrap-linux.c b/main/coregrind/m_syswrap/syswrap-linux.c index 7c4a7901d..8e2ec0f67 100644 --- a/main/coregrind/m_syswrap/syswrap-linux.c +++ b/main/coregrind/m_syswrap/syswrap-linux.c @@ -4308,6 +4308,8 @@ PRE(sys_ioctl) case 0x7231: case 0x4004e901: /* used by NFC */ return; +# elif defined(ANDROID_HARDWARE_nexus_4) + # endif default: @@ -5558,6 +5560,13 @@ PRE(sys_ioctl) case VKI_EVIOCSSUSPENDBLOCK: break; + case VKI_MEDIA_IOC_DEVICE_INFO: + if (ARG3) { + PRE_MEM_WRITE("ioctl(MEDIA_IOC_DEVICE_INFO)", ARG3, + sizeof(struct vki_media_device_info)); + } + break; + default: /* EVIOC* are variable length and return size written on success */ switch (ARG2 & ~(_VKI_IOC_SIZEMASK << _VKI_IOC_SIZESHIFT)) { @@ -5675,6 +5684,8 @@ POST(sys_ioctl) # elif defined(ANDROID_HARDWARE_nexus_7) +# elif defined(ANDROID_HARDWARE_nexus_4) + # else /* no ANDROID_HARDWARE_anything defined */ # warning "" @@ -5685,6 +5696,7 @@ POST(sys_ioctl) # warning " ANDROID_HARDWARE_nexus_s Samsung Nexus S" # warning " ANDROID_HARDWARE_nexus_10 Samsung Nexus 10" # warning " ANDROID_HARDWARE_nexus_7 ASUS Nexus 7" +# warning " ANDROID_HARDWARE_nexus_4 LG Nexus 4" # warning " ANDROID_HARDWARE_generic Generic device (eg, Pandaboard)" # warning " ANDROID_HARDWARE_emulator x86 or arm emulator" # warning "" @@ -6571,6 +6583,12 @@ POST(sys_ioctl) POST_MEM_WRITE( ARG3, sizeof(int) ); break; + case VKI_MEDIA_IOC_DEVICE_INFO: + if (ARG3) { + POST_MEM_WRITE(ARG3, sizeof(struct vki_media_device_info)); + } + break; + default: /* EVIOC* are variable length and return size written on success */ switch (ARG2 & ~(_VKI_IOC_SIZEMASK << _VKI_IOC_SIZESHIFT)) { diff --git a/main/include/vki/vki-linux.h b/main/include/vki/vki-linux.h index 8cefd8f63..214a6269e 100644 --- a/main/include/vki/vki-linux.h +++ b/main/include/vki/vki-linux.h @@ -3011,6 +3011,23 @@ struct vki_hwtstamp_config { #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) +//---------------------------------------------------------------------- +// From include/linux/media.h +//---------------------------------------------------------------------- + +struct vki_media_device_info { + char driver[16]; + char model[32]; + char serial[40]; + char bus_info[32]; + __vki_u32 media_version; + __vki_u32 hw_revision; + __vki_u32 driver_version; + __vki_u32 reserved[31]; +}; + +#define VKI_MEDIA_IOC_DEVICE_INFO _VKI_IOWR('|', 0x00, struct vki_media_device_info) + #endif // __VKI_LINUX_H /*--------------------------------------------------------------------*/ |