[compiler-rt] r200544 - [sanitizer] Support most ioctls from /usr/include/sound/.

Sergey Matveev earthdok at google.com
Fri Jan 31 06:02:22 PST 2014


Author: smatveev
Date: Fri Jan 31 08:02:21 2014
New Revision: 200544

URL: http://llvm.org/viewvc/llvm-project?rev=200544&view=rev
Log:
[sanitizer] Support most ioctls from /usr/include/sound/.

Added:
    compiler-rt/trunk/lib/msan/lit_tests/ioctl_sound.cc
Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h
    compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh

Added: compiler-rt/trunk/lib/msan/lit_tests/ioctl_sound.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/lit_tests/ioctl_sound.cc?rev=200544&view=auto
==============================================================================
--- compiler-rt/trunk/lib/msan/lit_tests/ioctl_sound.cc (added)
+++ compiler-rt/trunk/lib/msan/lit_tests/ioctl_sound.cc Fri Jan 31 08:02:21 2014
@@ -0,0 +1,26 @@
+// RUN: %clangxx_msan -m64 -O0 -g %s -o %t && %t
+// RUN: %clangxx_msan -m64 -O3 -g %s -o %t && %t
+
+#include <assert.h>
+#include <fcntl.h>
+#include <sound/asound.h>
+#include <stdio.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
+#include <sanitizer/msan_interface.h>
+
+int main(int argc, char **argv) {
+  int fd = open("/dev/snd/controlC0", O_RDONLY);
+  if (fd < 0) {
+    printf("Unable to open sound device.");
+    return 0;
+  }
+  snd_ctl_card_info info;
+  assert(__msan_test_shadow(&info, sizeof(info)) != -1);
+  assert(ioctl(fd, SNDRV_CTL_IOCTL_CARD_INFO, &info) >= 0);
+  assert(__msan_test_shadow(&info, sizeof(info)) == -1);
+  close(fd);
+  return 0;
+}

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc?rev=200544&r1=200543&r2=200544&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc Fri Jan 31 08:02:21 2014
@@ -14,14 +14,18 @@
 
 struct ioctl_desc {
   unsigned req;
-  // FIXME: support read+write arguments. Those are currently marked as WRITE.
+  // FIXME: support read+write arguments. Currently READWRITE and WRITE do the
+  // same thing.
+  // XXX: The declarations below may use WRITE instead of READWRITE, unless
+  // explicitly noted.
   enum {
     NONE,
     READ,
     WRITE,
+    READWRITE,
     CUSTOM
-  } type : 2;
-  unsigned size : 30;
+  } type : 3;
+  unsigned size : 29;
   const char* name;
 };
 
@@ -352,6 +356,129 @@ static void ioctl_table_fill() {
   _(VT_SENDSIG, NONE, 0);
   _(VT_SETMODE, READ, struct_vt_mode_sz);
   _(VT_WAITACTIVE, NONE, 0);
+
+  // <sound/asound.h>. READWRITE is used correctly in this group.
+  _(SNDRV_HWDEP_IOCTL_PVERSION, WRITE, sizeof(int))
+  _(SNDRV_HWDEP_IOCTL_INFO, WRITE, struct_snd_hwdep_info_sz)
+  _(SNDRV_HWDEP_IOCTL_DSP_STATUS, WRITE, struct_snd_hwdep_dsp_status_sz)
+  _(SNDRV_HWDEP_IOCTL_DSP_LOAD, READ, struct_snd_hwdep_dsp_image_sz)
+  _(SNDRV_PCM_IOCTL_PVERSION, WRITE, sizeof(int))
+  _(SNDRV_PCM_IOCTL_INFO, WRITE, struct_snd_pcm_info_sz)
+  _(SNDRV_PCM_IOCTL_TSTAMP, READ, sizeof(int))
+  _(SNDRV_PCM_IOCTL_TTSTAMP, READ, sizeof(int))
+  _(SNDRV_PCM_IOCTL_HW_REFINE, READWRITE, struct_snd_pcm_hw_params_sz)
+  _(SNDRV_PCM_IOCTL_HW_PARAMS, READWRITE, struct_snd_pcm_hw_params_sz)
+  _(SNDRV_PCM_IOCTL_HW_FREE, NONE, 0)
+  _(SNDRV_PCM_IOCTL_SW_PARAMS, READWRITE, struct_snd_pcm_sw_params_sz)
+  _(SNDRV_PCM_IOCTL_STATUS, WRITE, struct_snd_pcm_status_sz)
+  _(SNDRV_PCM_IOCTL_DELAY, WRITE, snd_pcm_sframes_t_sz)
+  _(SNDRV_PCM_IOCTL_HWSYNC, NONE, 0)
+  _(SNDRV_PCM_IOCTL_SYNC_PTR, READWRITE, struct_snd_pcm_sync_ptr_sz)
+  _(SNDRV_PCM_IOCTL_CHANNEL_INFO, WRITE, struct_snd_pcm_channel_info_sz)
+  _(SNDRV_PCM_IOCTL_PREPARE, NONE, 0)
+  _(SNDRV_PCM_IOCTL_RESET, NONE, 0)
+  _(SNDRV_PCM_IOCTL_START, NONE, 0)
+  _(SNDRV_PCM_IOCTL_DROP, NONE, 0)
+  _(SNDRV_PCM_IOCTL_DRAIN, NONE, 0)
+  _(SNDRV_PCM_IOCTL_PAUSE, READ, sizeof(int))
+  _(SNDRV_PCM_IOCTL_REWIND, READ, snd_pcm_uframes_t_sz)
+  _(SNDRV_PCM_IOCTL_RESUME, NONE, 0)
+  _(SNDRV_PCM_IOCTL_XRUN, NONE, 0)
+  _(SNDRV_PCM_IOCTL_FORWARD, READ, snd_pcm_uframes_t_sz)
+  _(SNDRV_PCM_IOCTL_WRITEI_FRAMES, READ, struct_snd_xferi_sz)
+  _(SNDRV_PCM_IOCTL_READI_FRAMES, WRITE, struct_snd_xferi_sz)
+  _(SNDRV_PCM_IOCTL_WRITEN_FRAMES, READ, struct_snd_xfern_sz)
+  _(SNDRV_PCM_IOCTL_READN_FRAMES, WRITE, struct_snd_xfern_sz)
+  _(SNDRV_PCM_IOCTL_LINK, READ, sizeof(int))
+  _(SNDRV_PCM_IOCTL_UNLINK, NONE, 0)
+  _(SNDRV_RAWMIDI_IOCTL_PVERSION, WRITE, sizeof(int))
+  _(SNDRV_RAWMIDI_IOCTL_INFO, WRITE, struct_snd_rawmidi_info_sz)
+  _(SNDRV_RAWMIDI_IOCTL_PARAMS, READWRITE, struct_snd_rawmidi_params_sz)
+  _(SNDRV_RAWMIDI_IOCTL_STATUS, READWRITE, struct_snd_rawmidi_status_sz)
+  _(SNDRV_RAWMIDI_IOCTL_DROP, READ, sizeof(int))
+  _(SNDRV_RAWMIDI_IOCTL_DRAIN, READ, sizeof(int))
+  _(SNDRV_TIMER_IOCTL_PVERSION, WRITE, sizeof(int))
+  _(SNDRV_TIMER_IOCTL_NEXT_DEVICE, READWRITE, struct_snd_timer_id_sz)
+  _(SNDRV_TIMER_IOCTL_TREAD, READ, sizeof(int))
+  _(SNDRV_TIMER_IOCTL_GINFO, READWRITE, struct_snd_timer_ginfo_sz)
+  _(SNDRV_TIMER_IOCTL_GPARAMS, READ, struct_snd_timer_gparams_sz)
+  _(SNDRV_TIMER_IOCTL_GSTATUS, READWRITE, struct_snd_timer_gstatus_sz)
+  _(SNDRV_TIMER_IOCTL_SELECT, READ, struct_snd_timer_select_sz)
+  _(SNDRV_TIMER_IOCTL_INFO, WRITE, struct_snd_timer_info_sz)
+  _(SNDRV_TIMER_IOCTL_PARAMS, READ, struct_snd_timer_params_sz)
+  _(SNDRV_TIMER_IOCTL_STATUS, WRITE, struct_snd_timer_status_sz)
+  _(SNDRV_TIMER_IOCTL_START, NONE, 0)
+  _(SNDRV_TIMER_IOCTL_STOP, NONE, 0)
+  _(SNDRV_TIMER_IOCTL_CONTINUE, NONE, 0)
+  _(SNDRV_TIMER_IOCTL_PAUSE, NONE, 0)
+  _(SNDRV_CTL_IOCTL_PVERSION, WRITE, sizeof(int))
+  _(SNDRV_CTL_IOCTL_CARD_INFO, WRITE, struct_snd_ctl_card_info_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_LIST, READWRITE, struct_snd_ctl_elem_list_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_INFO, READWRITE, struct_snd_ctl_elem_info_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_READ, READWRITE, struct_snd_ctl_elem_value_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_WRITE, READWRITE, struct_snd_ctl_elem_value_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_LOCK, READ, struct_snd_ctl_elem_id_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_UNLOCK, READ, struct_snd_ctl_elem_id_sz)
+  _(SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS, READWRITE, sizeof(int))
+  _(SNDRV_CTL_IOCTL_ELEM_ADD, READWRITE, struct_snd_ctl_elem_info_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_REPLACE, READWRITE, struct_snd_ctl_elem_info_sz)
+  _(SNDRV_CTL_IOCTL_ELEM_REMOVE, READWRITE, struct_snd_ctl_elem_id_sz)
+  _(SNDRV_CTL_IOCTL_TLV_READ, READWRITE, struct_snd_ctl_tlv_sz)
+  _(SNDRV_CTL_IOCTL_TLV_WRITE, READWRITE, struct_snd_ctl_tlv_sz)
+  _(SNDRV_CTL_IOCTL_TLV_COMMAND, READWRITE, struct_snd_ctl_tlv_sz)
+  _(SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE, READWRITE, sizeof(int))
+  _(SNDRV_CTL_IOCTL_HWDEP_INFO, WRITE, struct_snd_hwdep_info_sz)
+  _(SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE, WRITE, sizeof(int))
+  _(SNDRV_CTL_IOCTL_PCM_INFO, READWRITE, struct_snd_pcm_info_sz)
+  _(SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE, READ, sizeof(int))
+  _(SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE, READWRITE, sizeof(int))
+  _(SNDRV_CTL_IOCTL_RAWMIDI_INFO, READWRITE, struct_snd_rawmidi_info_sz)
+  _(SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE, READ, sizeof(int))
+  _(SNDRV_CTL_IOCTL_POWER, READWRITE, sizeof(int))
+  _(SNDRV_CTL_IOCTL_POWER_STATE, WRITE, sizeof(int))
+
+  // <sound/asound_fm.h>. READWRITE is used correctly in this group.
+  _(SNDRV_DM_FM_IOCTL_INFO, WRITE, struct_snd_dm_fm_info_sz)
+  _(SNDRV_DM_FM_IOCTL_RESET, NONE, 0)
+  _(SNDRV_DM_FM_IOCTL_PLAY_NOTE, READ, struct_snd_dm_fm_note_sz)
+  _(SNDRV_DM_FM_IOCTL_SET_VOICE, READ, struct_snd_dm_fm_voice_sz)
+  _(SNDRV_DM_FM_IOCTL_SET_PARAMS, READ, struct_snd_dm_fm_params_sz)
+  _(SNDRV_DM_FM_IOCTL_SET_MODE, READ, sizeof(int))
+  _(SNDRV_DM_FM_IOCTL_SET_CONNECTION, READ, sizeof(int))
+  _(SNDRV_DM_FM_IOCTL_CLEAR_PATCHES, NONE, 0)
+
+  // <sound/hdsp.h>. READWRITE is used correctly in this group.
+  _(SNDRV_HDSP_IOCTL_GET_PEAK_RMS, WRITE, struct_hdsp_peak_rms_sz)
+  _(SNDRV_HDSP_IOCTL_GET_CONFIG_INFO, WRITE, struct_hdsp_config_info_sz)
+  _(SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE, READ, struct_hdsp_firmware_sz)
+  _(SNDRV_HDSP_IOCTL_GET_VERSION, WRITE, struct_hdsp_version_sz)
+  _(SNDRV_HDSP_IOCTL_GET_MIXER, WRITE, struct_hdsp_mixer_sz)
+  _(SNDRV_HDSP_IOCTL_GET_9632_AEB, WRITE, struct_hdsp_9632_aeb_sz)
+
+  // <sound/hdspm.h>. READWRITE is used correctly in this group.
+  _(SNDRV_HDSPM_IOCTL_GET_PEAK_RMS, WRITE, struct_hdspm_peak_rms_sz)
+  _(SNDRV_HDSPM_IOCTL_GET_CONFIG, WRITE, struct_hdspm_config_sz)
+  _(SNDRV_HDSPM_IOCTL_GET_LTC, WRITE, struct_hdspm_mixer_ioctl_sz)
+  _(SNDRV_HDSPM_IOCTL_GET_STATUS, WRITE, struct_hdspm_status_sz)
+  _(SNDRV_HDSPM_IOCTL_GET_VERSION, WRITE, struct_hdspm_version_sz)
+  _(SNDRV_HDSPM_IOCTL_GET_MIXER, WRITE, struct_hdspm_mixer_ioctl_sz)
+
+  // <sound/sb16_csp.h>. READWRITE is used correctly in this group.
+  _(SNDRV_SB_CSP_IOCTL_INFO, WRITE, struct_snd_sb_csp_info_sz)
+  _(SNDRV_SB_CSP_IOCTL_LOAD_CODE, READ, struct_snd_sb_csp_microcode_sz)
+  _(SNDRV_SB_CSP_IOCTL_UNLOAD_CODE, NONE, 0)
+  _(SNDRV_SB_CSP_IOCTL_START, READ, struct_snd_sb_csp_start_sz)
+  _(SNDRV_SB_CSP_IOCTL_STOP, NONE, 0)
+  _(SNDRV_SB_CSP_IOCTL_PAUSE, NONE, 0)
+  _(SNDRV_SB_CSP_IOCTL_RESTART, NONE, 0)
+
+  // <sound/sfnt_info.h>. READWRITE is used correctly in this group.
+  _(SNDRV_EMUX_IOCTL_VERSION, WRITE, sizeof(unsigned int))
+  _(SNDRV_EMUX_IOCTL_LOAD_PATCH, READWRITE, struct_soundfont_patch_info_sz)
+  _(SNDRV_EMUX_IOCTL_RESET_SAMPLES, NONE, 0)
+  _(SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES, NONE, 0)
+  _(SNDRV_EMUX_IOCTL_MEM_AVAIL, READ, sizeof(int))
+  _(SNDRV_EMUX_IOCTL_MISC_MODE, READWRITE, struct_snd_emux_misc_mode_sz)
 #endif
 
 #if SANITIZER_LINUX && !SANITIZER_ANDROID
@@ -525,14 +652,15 @@ static const ioctl_desc *ioctl_lookup(un
   // Sanity check: requests that encode access size are either read or write and
   // have size of 0 in the table.
   if (desc && desc->size == 0 &&
-      (desc->type == ioctl_desc::WRITE || desc->type == ioctl_desc::READ))
+      (desc->type == ioctl_desc::READWRITE || desc->type == ioctl_desc::WRITE ||
+       desc->type == ioctl_desc::READ))
     return desc;
   return 0;
 }
 
 static void ioctl_common_pre(void *ctx, const ioctl_desc *desc, int d,
                              unsigned request, void *arg) {
-  if (desc->type == ioctl_desc::READ) {
+  if (desc->type == ioctl_desc::READ || desc->type == ioctl_desc::READWRITE) {
     unsigned size = desc->size ? desc->size : IOC_SIZE(request);
     COMMON_INTERCEPTOR_READ_RANGE(ctx, arg, size);
   }
@@ -550,7 +678,7 @@ static void ioctl_common_pre(void *ctx,
 
 static void ioctl_common_post(void *ctx, const ioctl_desc *desc, int res, int d,
                               unsigned request, void *arg) {
-  if (desc->type == ioctl_desc::WRITE) {
+  if (desc->type == ioctl_desc::WRITE || desc->type == ioctl_desc::READWRITE) {
     // FIXME: add verbose output
     unsigned size = desc->size ? desc->size : IOC_SIZE(request);
     COMMON_INTERCEPTOR_WRITE_RANGE(ctx, arg, size);

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cc?rev=200544&r1=200543&r2=200544&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cc Fri Jan 31 08:02:21 2014
@@ -119,6 +119,15 @@
 #include <sys/sockio.h>
 #endif
 
+#if SANITIZER_LINUX
+#include <sound/asound.h>
+#include <sound/asound_fm.h>
+#include <sound/hdsp.h>
+#include <sound/hdspm.h>
+#include <sound/sb16_csp.h>
+#include <sound/sfnt_info.h>
+#endif
+
 namespace __sanitizer {
   unsigned struct_utsname_sz = sizeof(struct utsname);
   unsigned struct_stat_sz = sizeof(struct stat);
@@ -331,6 +340,59 @@ namespace __sanitizer {
   unsigned struct_sioc_vif_req_sz = sizeof(struct sioc_vif_req);
 #endif
 
+#if SANITIZER_LINUX
+  unsigned snd_pcm_sframes_t_sz = sizeof(snd_pcm_sframes_t);
+  unsigned snd_pcm_uframes_t_sz = sizeof(snd_pcm_uframes_t);
+  unsigned struct_hdsp_9632_aeb_sz = sizeof(struct hdsp_9632_aeb);
+  unsigned struct_hdsp_config_info_sz = sizeof(struct hdsp_config_info);
+  unsigned struct_hdsp_firmware_sz = sizeof(struct hdsp_firmware);
+  unsigned struct_hdspm_config_sz = sizeof(struct hdspm_config);
+  unsigned struct_hdsp_mixer_sz = sizeof(struct hdsp_mixer);
+  unsigned struct_hdspm_mixer_ioctl_sz = sizeof(struct hdspm_mixer_ioctl);
+  unsigned struct_hdspm_peak_rms_sz = sizeof(struct hdspm_peak_rms);
+  unsigned struct_hdspm_status_sz = sizeof(struct hdspm_status);
+  unsigned struct_hdspm_version_sz = sizeof(struct hdspm_version);
+  unsigned struct_hdsp_peak_rms_sz = sizeof(struct hdsp_peak_rms);
+  unsigned struct_hdsp_version_sz = sizeof(struct hdsp_version);
+  unsigned struct_snd_ctl_card_info_sz = sizeof(struct snd_ctl_card_info);
+  unsigned struct_snd_ctl_elem_id_sz = sizeof(struct snd_ctl_elem_id);
+  unsigned struct_snd_ctl_elem_info_sz = sizeof(struct snd_ctl_elem_info);
+  unsigned struct_snd_ctl_elem_list_sz = sizeof(struct snd_ctl_elem_list);
+  unsigned struct_snd_ctl_elem_value_sz = sizeof(struct snd_ctl_elem_value);
+  unsigned struct_snd_ctl_tlv_sz = sizeof(struct snd_ctl_tlv);
+  unsigned struct_snd_dm_fm_info_sz = sizeof(struct snd_dm_fm_info);
+  unsigned struct_snd_dm_fm_note_sz = sizeof(struct snd_dm_fm_note);
+  unsigned struct_snd_dm_fm_params_sz = sizeof(struct snd_dm_fm_params);
+  unsigned struct_snd_dm_fm_voice_sz = sizeof(struct snd_dm_fm_voice);
+  unsigned struct_snd_emux_misc_mode_sz = sizeof(struct snd_emux_misc_mode);
+  unsigned struct_snd_hwdep_dsp_image_sz = sizeof(struct snd_hwdep_dsp_image);
+  unsigned struct_snd_hwdep_dsp_status_sz = sizeof(struct snd_hwdep_dsp_status);
+  unsigned struct_snd_hwdep_info_sz = sizeof(struct snd_hwdep_info);
+  unsigned struct_snd_pcm_channel_info_sz = sizeof(struct snd_pcm_channel_info);
+  unsigned struct_snd_pcm_hw_params_sz = sizeof(struct snd_pcm_hw_params);
+  unsigned struct_snd_pcm_info_sz = sizeof(struct snd_pcm_info);
+  unsigned struct_snd_pcm_status_sz = sizeof(struct snd_pcm_status);
+  unsigned struct_snd_pcm_sw_params_sz = sizeof(struct snd_pcm_sw_params);
+  unsigned struct_snd_pcm_sync_ptr_sz = sizeof(struct snd_pcm_sync_ptr);
+  unsigned struct_snd_rawmidi_info_sz = sizeof(struct snd_rawmidi_info);
+  unsigned struct_snd_rawmidi_params_sz = sizeof(struct snd_rawmidi_params);
+  unsigned struct_snd_rawmidi_status_sz = sizeof(struct snd_rawmidi_status);
+  unsigned struct_snd_sb_csp_info_sz = sizeof(struct snd_sb_csp_info);
+  unsigned struct_snd_sb_csp_microcode_sz = sizeof(struct snd_sb_csp_microcode);
+  unsigned struct_snd_sb_csp_start_sz = sizeof(struct snd_sb_csp_start);
+  unsigned struct_snd_timer_ginfo_sz = sizeof(struct snd_timer_ginfo);
+  unsigned struct_snd_timer_gparams_sz = sizeof(struct snd_timer_gparams);
+  unsigned struct_snd_timer_gstatus_sz = sizeof(struct snd_timer_gstatus);
+  unsigned struct_snd_timer_id_sz = sizeof(struct snd_timer_id);
+  unsigned struct_snd_timer_info_sz = sizeof(struct snd_timer_info);
+  unsigned struct_snd_timer_params_sz = sizeof(struct snd_timer_params);
+  unsigned struct_snd_timer_select_sz = sizeof(struct snd_timer_select);
+  unsigned struct_snd_timer_status_sz = sizeof(struct snd_timer_status);
+  unsigned struct_snd_xferi_sz = sizeof(struct snd_xferi);
+  unsigned struct_snd_xfern_sz = sizeof(struct snd_xfern);
+  unsigned struct_soundfont_patch_info_sz = sizeof(struct soundfont_patch_info);
+#endif
+
   unsigned IOCTL_NOT_PRESENT = 0;
 
   unsigned IOCTL_FIOASYNC = FIOASYNC;
@@ -764,6 +826,133 @@ namespace __sanitizer {
   unsigned IOCTL_TIOCSERSETMULTI = TIOCSERSETMULTI;
   unsigned IOCTL_TIOCSSERIAL = TIOCSSERIAL;
 #endif
+#if SANITIZER_LINUX
+  unsigned IOCTL_SNDRV_HWDEP_IOCTL_PVERSION = SNDRV_HWDEP_IOCTL_PVERSION;
+  unsigned IOCTL_SNDRV_HWDEP_IOCTL_INFO = SNDRV_HWDEP_IOCTL_INFO;
+  unsigned IOCTL_SNDRV_HWDEP_IOCTL_DSP_STATUS = SNDRV_HWDEP_IOCTL_DSP_STATUS;
+  unsigned IOCTL_SNDRV_HWDEP_IOCTL_DSP_LOAD = SNDRV_HWDEP_IOCTL_DSP_LOAD;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_PVERSION = SNDRV_PCM_IOCTL_PVERSION;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_INFO = SNDRV_PCM_IOCTL_INFO;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_TSTAMP = SNDRV_PCM_IOCTL_TSTAMP;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_TTSTAMP = SNDRV_PCM_IOCTL_TTSTAMP;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_HW_REFINE = SNDRV_PCM_IOCTL_HW_REFINE;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_HW_PARAMS = SNDRV_PCM_IOCTL_HW_PARAMS;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_HW_FREE = SNDRV_PCM_IOCTL_HW_FREE;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_SW_PARAMS = SNDRV_PCM_IOCTL_SW_PARAMS;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_STATUS = SNDRV_PCM_IOCTL_STATUS;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_DELAY = SNDRV_PCM_IOCTL_DELAY;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_HWSYNC = SNDRV_PCM_IOCTL_HWSYNC;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_SYNC_PTR = SNDRV_PCM_IOCTL_SYNC_PTR;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_CHANNEL_INFO = SNDRV_PCM_IOCTL_CHANNEL_INFO;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_PREPARE = SNDRV_PCM_IOCTL_PREPARE;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_RESET = SNDRV_PCM_IOCTL_RESET;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_START = SNDRV_PCM_IOCTL_START;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_DROP = SNDRV_PCM_IOCTL_DROP;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_DRAIN = SNDRV_PCM_IOCTL_DRAIN;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_PAUSE = SNDRV_PCM_IOCTL_PAUSE;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_REWIND = SNDRV_PCM_IOCTL_REWIND;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_RESUME = SNDRV_PCM_IOCTL_RESUME;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_XRUN = SNDRV_PCM_IOCTL_XRUN;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_FORWARD = SNDRV_PCM_IOCTL_FORWARD;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_WRITEI_FRAMES = SNDRV_PCM_IOCTL_WRITEI_FRAMES;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_READI_FRAMES = SNDRV_PCM_IOCTL_READI_FRAMES;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_WRITEN_FRAMES = SNDRV_PCM_IOCTL_WRITEN_FRAMES;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_READN_FRAMES = SNDRV_PCM_IOCTL_READN_FRAMES;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_LINK = SNDRV_PCM_IOCTL_LINK;
+  unsigned IOCTL_SNDRV_PCM_IOCTL_UNLINK = SNDRV_PCM_IOCTL_UNLINK;
+  unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_PVERSION = SNDRV_RAWMIDI_IOCTL_PVERSION;
+  unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_INFO = SNDRV_RAWMIDI_IOCTL_INFO;
+  unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_PARAMS = SNDRV_RAWMIDI_IOCTL_PARAMS;
+  unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_STATUS = SNDRV_RAWMIDI_IOCTL_STATUS;
+  unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_DROP = SNDRV_RAWMIDI_IOCTL_DROP;
+  unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_DRAIN = SNDRV_RAWMIDI_IOCTL_DRAIN;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_PVERSION = SNDRV_TIMER_IOCTL_PVERSION;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_NEXT_DEVICE = SNDRV_TIMER_IOCTL_NEXT_DEVICE;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_TREAD = SNDRV_TIMER_IOCTL_TREAD;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_GINFO = SNDRV_TIMER_IOCTL_GINFO;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_GPARAMS = SNDRV_TIMER_IOCTL_GPARAMS;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_GSTATUS = SNDRV_TIMER_IOCTL_GSTATUS;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_SELECT = SNDRV_TIMER_IOCTL_SELECT;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_INFO = SNDRV_TIMER_IOCTL_INFO;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_PARAMS = SNDRV_TIMER_IOCTL_PARAMS;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_STATUS = SNDRV_TIMER_IOCTL_STATUS;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_START = SNDRV_TIMER_IOCTL_START;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_STOP = SNDRV_TIMER_IOCTL_STOP;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_CONTINUE = SNDRV_TIMER_IOCTL_CONTINUE;
+  unsigned IOCTL_SNDRV_TIMER_IOCTL_PAUSE = SNDRV_TIMER_IOCTL_PAUSE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_PVERSION = SNDRV_CTL_IOCTL_PVERSION;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_CARD_INFO = SNDRV_CTL_IOCTL_CARD_INFO;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_LIST = SNDRV_CTL_IOCTL_ELEM_LIST;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_INFO = SNDRV_CTL_IOCTL_ELEM_INFO;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_READ = SNDRV_CTL_IOCTL_ELEM_READ;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_WRITE = SNDRV_CTL_IOCTL_ELEM_WRITE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_LOCK = SNDRV_CTL_IOCTL_ELEM_LOCK;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_UNLOCK = SNDRV_CTL_IOCTL_ELEM_UNLOCK;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS =
+      SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_ADD = SNDRV_CTL_IOCTL_ELEM_ADD;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_REPLACE = SNDRV_CTL_IOCTL_ELEM_REPLACE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_REMOVE = SNDRV_CTL_IOCTL_ELEM_REMOVE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_TLV_READ = SNDRV_CTL_IOCTL_TLV_READ;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_TLV_WRITE = SNDRV_CTL_IOCTL_TLV_WRITE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_TLV_COMMAND = SNDRV_CTL_IOCTL_TLV_COMMAND;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE =
+      SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_HWDEP_INFO = SNDRV_CTL_IOCTL_HWDEP_INFO;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE =
+      SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_PCM_INFO = SNDRV_CTL_IOCTL_PCM_INFO;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE =
+      SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE =
+      SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_RAWMIDI_INFO = SNDRV_CTL_IOCTL_RAWMIDI_INFO;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE =
+      SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_POWER = SNDRV_CTL_IOCTL_POWER;
+  unsigned IOCTL_SNDRV_CTL_IOCTL_POWER_STATE = SNDRV_CTL_IOCTL_POWER_STATE;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_INFO = SNDRV_DM_FM_IOCTL_INFO;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_RESET = SNDRV_DM_FM_IOCTL_RESET;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_PLAY_NOTE = SNDRV_DM_FM_IOCTL_PLAY_NOTE;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_VOICE = SNDRV_DM_FM_IOCTL_SET_VOICE;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_PARAMS = SNDRV_DM_FM_IOCTL_SET_PARAMS;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_MODE = SNDRV_DM_FM_IOCTL_SET_MODE;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_CONNECTION =
+      SNDRV_DM_FM_IOCTL_SET_CONNECTION;
+  unsigned IOCTL_SNDRV_DM_FM_IOCTL_CLEAR_PATCHES =
+      SNDRV_DM_FM_IOCTL_CLEAR_PATCHES;
+  unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_PEAK_RMS = SNDRV_HDSP_IOCTL_GET_PEAK_RMS;
+  unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_CONFIG_INFO =
+      SNDRV_HDSP_IOCTL_GET_CONFIG_INFO;
+  unsigned IOCTL_SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE =
+      SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE;
+  unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_VERSION = SNDRV_HDSP_IOCTL_GET_VERSION;
+  unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_MIXER = SNDRV_HDSP_IOCTL_GET_MIXER;
+  unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_9632_AEB = SNDRV_HDSP_IOCTL_GET_9632_AEB;
+  unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_PEAK_RMS =
+      SNDRV_HDSPM_IOCTL_GET_PEAK_RMS;
+  unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_CONFIG = SNDRV_HDSPM_IOCTL_GET_CONFIG;
+  unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_LTC = SNDRV_HDSPM_IOCTL_GET_LTC;
+  unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_STATUS = SNDRV_HDSPM_IOCTL_GET_STATUS;
+  unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_VERSION = SNDRV_HDSPM_IOCTL_GET_VERSION;
+  unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_MIXER = SNDRV_HDSPM_IOCTL_GET_MIXER;
+  unsigned IOCTL_SNDRV_SB_CSP_IOCTL_INFO = SNDRV_SB_CSP_IOCTL_INFO;
+  unsigned IOCTL_SNDRV_SB_CSP_IOCTL_LOAD_CODE = SNDRV_SB_CSP_IOCTL_LOAD_CODE;
+  unsigned IOCTL_SNDRV_SB_CSP_IOCTL_UNLOAD_CODE =
+      SNDRV_SB_CSP_IOCTL_UNLOAD_CODE;
+  unsigned IOCTL_SNDRV_SB_CSP_IOCTL_START = SNDRV_SB_CSP_IOCTL_START;
+  unsigned IOCTL_SNDRV_SB_CSP_IOCTL_STOP = SNDRV_SB_CSP_IOCTL_STOP;
+  unsigned IOCTL_SNDRV_SB_CSP_IOCTL_PAUSE = SNDRV_SB_CSP_IOCTL_PAUSE;
+  unsigned IOCTL_SNDRV_SB_CSP_IOCTL_RESTART = SNDRV_SB_CSP_IOCTL_RESTART;
+  unsigned IOCTL_SNDRV_EMUX_IOCTL_VERSION = SNDRV_EMUX_IOCTL_VERSION;
+  unsigned IOCTL_SNDRV_EMUX_IOCTL_LOAD_PATCH = SNDRV_EMUX_IOCTL_LOAD_PATCH;
+  unsigned IOCTL_SNDRV_EMUX_IOCTL_RESET_SAMPLES =
+      SNDRV_EMUX_IOCTL_RESET_SAMPLES;
+  unsigned IOCTL_SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES =
+      SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES;
+  unsigned IOCTL_SNDRV_EMUX_IOCTL_MEM_AVAIL = SNDRV_EMUX_IOCTL_MEM_AVAIL;
+  unsigned IOCTL_SNDRV_EMUX_IOCTL_MISC_MODE = SNDRV_EMUX_IOCTL_MISC_MODE;
+#endif
 
 // EOWNERDEAD is not present in some older platforms.
 #if defined(EOWNERDEAD)

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=200544&r1=200543&r2=200544&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h Fri Jan 31 08:02:21 2014
@@ -591,6 +591,59 @@ namespace __sanitizer {
   extern unsigned struct_sioc_vif_req_sz;
 #endif
 
+#if SANITIZER_LINUX
+  extern unsigned snd_pcm_sframes_t_sz;
+  extern unsigned snd_pcm_uframes_t_sz;
+  extern unsigned struct_hdsp_9632_aeb_sz;
+  extern unsigned struct_hdsp_config_info_sz;
+  extern unsigned struct_hdsp_firmware_sz;
+  extern unsigned struct_hdspm_config_sz;
+  extern unsigned struct_hdsp_mixer_sz;
+  extern unsigned struct_hdspm_mixer_ioctl_sz;
+  extern unsigned struct_hdspm_peak_rms_sz;
+  extern unsigned struct_hdspm_status_sz;
+  extern unsigned struct_hdspm_version_sz;
+  extern unsigned struct_hdsp_peak_rms_sz;
+  extern unsigned struct_hdsp_version_sz;
+  extern unsigned struct_snd_ctl_card_info_sz;
+  extern unsigned struct_snd_ctl_elem_id_sz;
+  extern unsigned struct_snd_ctl_elem_info_sz;
+  extern unsigned struct_snd_ctl_elem_list_sz;
+  extern unsigned struct_snd_ctl_elem_value_sz;
+  extern unsigned struct_snd_ctl_tlv_sz;
+  extern unsigned struct_snd_dm_fm_info_sz;
+  extern unsigned struct_snd_dm_fm_note_sz;
+  extern unsigned struct_snd_dm_fm_params_sz;
+  extern unsigned struct_snd_dm_fm_voice_sz;
+  extern unsigned struct_snd_emux_misc_mode_sz;
+  extern unsigned struct_snd_hwdep_dsp_image_sz;
+  extern unsigned struct_snd_hwdep_dsp_status_sz;
+  extern unsigned struct_snd_hwdep_info_sz;
+  extern unsigned struct_snd_pcm_channel_info_sz;
+  extern unsigned struct_snd_pcm_hw_params_sz;
+  extern unsigned struct_snd_pcm_info_sz;
+  extern unsigned struct_snd_pcm_status_sz;
+  extern unsigned struct_snd_pcm_sw_params_sz;
+  extern unsigned struct_snd_pcm_sync_ptr_sz;
+  extern unsigned struct_snd_rawmidi_info_sz;
+  extern unsigned struct_snd_rawmidi_params_sz;
+  extern unsigned struct_snd_rawmidi_status_sz;
+  extern unsigned struct_snd_sb_csp_info_sz;
+  extern unsigned struct_snd_sb_csp_microcode_sz;
+  extern unsigned struct_snd_sb_csp_start_sz;
+  extern unsigned struct_snd_timer_ginfo_sz;
+  extern unsigned struct_snd_timer_gparams_sz;
+  extern unsigned struct_snd_timer_gstatus_sz;
+  extern unsigned struct_snd_timer_id_sz;
+  extern unsigned struct_snd_timer_info_sz;
+  extern unsigned struct_snd_timer_params_sz;
+  extern unsigned struct_snd_timer_select_sz;
+  extern unsigned struct_snd_timer_status_sz;
+  extern unsigned struct_snd_xferi_sz;
+  extern unsigned struct_snd_xfern_sz;
+  extern unsigned struct_soundfont_patch_info_sz;
+#endif
+
   // ioctl request identifiers
 
   // A special value to mark ioctls that are not present on the target platform,
@@ -1003,6 +1056,119 @@ namespace __sanitizer {
   extern unsigned IOCTL_TIOCSERSETMULTI;
   extern unsigned IOCTL_TIOCSSERIAL;
 #endif
+#if SANITIZER_LINUX
+  extern unsigned IOCTL_SNDRV_HWDEP_IOCTL_PVERSION;
+  extern unsigned IOCTL_SNDRV_HWDEP_IOCTL_INFO;
+  extern unsigned IOCTL_SNDRV_HWDEP_IOCTL_DSP_STATUS;
+  extern unsigned IOCTL_SNDRV_HWDEP_IOCTL_DSP_LOAD;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_PVERSION;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_INFO;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_TSTAMP;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_TTSTAMP;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_HW_REFINE;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_HW_PARAMS;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_HW_FREE;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_SW_PARAMS;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_STATUS;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_DELAY;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_HWSYNC;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_SYNC_PTR;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_CHANNEL_INFO;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_PREPARE;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_RESET;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_START;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_DROP;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_DRAIN;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_PAUSE;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_REWIND;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_RESUME;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_XRUN;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_FORWARD;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_WRITEI_FRAMES;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_READI_FRAMES;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_WRITEN_FRAMES;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_READN_FRAMES;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_LINK;
+  extern unsigned IOCTL_SNDRV_PCM_IOCTL_UNLINK;
+  extern unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_PVERSION;
+  extern unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_INFO;
+  extern unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_PARAMS;
+  extern unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_STATUS;
+  extern unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_DROP;
+  extern unsigned IOCTL_SNDRV_RAWMIDI_IOCTL_DRAIN;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_PVERSION;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_NEXT_DEVICE;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_TREAD;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_GINFO;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_GPARAMS;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_GSTATUS;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_SELECT;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_INFO;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_PARAMS;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_STATUS;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_START;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_STOP;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_CONTINUE;
+  extern unsigned IOCTL_SNDRV_TIMER_IOCTL_PAUSE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_PVERSION;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_CARD_INFO;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_LIST;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_INFO;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_READ;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_WRITE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_LOCK;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_UNLOCK;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_ADD;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_REPLACE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_ELEM_REMOVE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_TLV_READ;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_TLV_WRITE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_TLV_COMMAND;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_HWDEP_INFO;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_PCM_INFO;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_RAWMIDI_INFO;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_POWER;
+  extern unsigned IOCTL_SNDRV_CTL_IOCTL_POWER_STATE;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_INFO;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_RESET;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_PLAY_NOTE;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_VOICE;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_PARAMS;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_MODE;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_SET_CONNECTION;
+  extern unsigned IOCTL_SNDRV_DM_FM_IOCTL_CLEAR_PATCHES;
+  extern unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_PEAK_RMS;
+  extern unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_CONFIG_INFO;
+  extern unsigned IOCTL_SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE;
+  extern unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_VERSION;
+  extern unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_MIXER;
+  extern unsigned IOCTL_SNDRV_HDSP_IOCTL_GET_9632_AEB;
+  extern unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_PEAK_RMS;
+  extern unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_CONFIG;
+  extern unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_LTC;
+  extern unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_STATUS;
+  extern unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_VERSION;
+  extern unsigned IOCTL_SNDRV_HDSPM_IOCTL_GET_MIXER;
+  extern unsigned IOCTL_SNDRV_SB_CSP_IOCTL_INFO;
+  extern unsigned IOCTL_SNDRV_SB_CSP_IOCTL_LOAD_CODE;
+  extern unsigned IOCTL_SNDRV_SB_CSP_IOCTL_UNLOAD_CODE;
+  extern unsigned IOCTL_SNDRV_SB_CSP_IOCTL_START;
+  extern unsigned IOCTL_SNDRV_SB_CSP_IOCTL_STOP;
+  extern unsigned IOCTL_SNDRV_SB_CSP_IOCTL_PAUSE;
+  extern unsigned IOCTL_SNDRV_SB_CSP_IOCTL_RESTART;
+  extern unsigned IOCTL_SNDRV_EMUX_IOCTL_VERSION;
+  extern unsigned IOCTL_SNDRV_EMUX_IOCTL_LOAD_PATCH;
+  extern unsigned IOCTL_SNDRV_EMUX_IOCTL_RESET_SAMPLES;
+  extern unsigned IOCTL_SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES;
+  extern unsigned IOCTL_SNDRV_EMUX_IOCTL_MEM_AVAIL;
+  extern unsigned IOCTL_SNDRV_EMUX_IOCTL_MISC_MODE;
+#endif
 
   extern const int errno_EOWNERDEAD;
 }  // namespace __sanitizer

Modified: compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh?rev=200544&r1=200543&r2=200544&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh (original)
+++ compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh Fri Jan 31 08:02:21 2014
@@ -28,7 +28,7 @@ MSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTE
 LSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER}
 LSAN_LIT_TEST_LINT_FILTER=${LSAN_RTL_LINT_FILTER},-whitespace/line_length
 DFSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int,-runtime/printf,-runtime/references
-COMMON_RTL_INC_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int,-runtime/sizeof,-runtime/printf
+COMMON_RTL_INC_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int,-runtime/sizeof,-runtime/printf,-readability/fn_size
 SANITIZER_INCLUDES_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int
 MKTEMP="mktemp -q /tmp/tmp.XXXXXXXXXX"
 cd ${LLVM_CHECKOUT}





More information about the llvm-commits mailing list