sanitizer_platform_limits_posix.h revision 359d7fc7daf099ab8ef9a860564542d2581544aa
19358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov//===-- sanitizer_platform_limits_posix.h ---------------------------------===//
278c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//                     The LLVM Compiler Infrastructure
478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
578c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov// This file is distributed under the University of Illinois Open Source
678c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov// License. See LICENSE.TXT for details.
778c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
878c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//===----------------------------------------------------------------------===//
978c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
109358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov// This file is a part of Sanitizer common code.
1178c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
129358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov// Sizes and layouts of platform-specific POSIX data structures.
1378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//===----------------------------------------------------------------------===//
1478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
159358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov#ifndef SANITIZER_PLATFORM_LIMITS_POSIX_H
169358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov#define SANITIZER_PLATFORM_LIMITS_POSIX_H
1778c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
1824e13723f8477d8c42ab8b2a7f4f69fc089842f1Evgeniy Stepanov#include "sanitizer_platform.h"
1924e13723f8477d8c42ab8b2a7f4f69fc089842f1Evgeniy Stepanov
209358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanovnamespace __sanitizer {
2178c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  extern unsigned struct_utsname_sz;
2278c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  extern unsigned struct_stat_sz;
2378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  extern unsigned struct_stat64_sz;
249358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov  extern unsigned struct_rusage_sz;
259358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov  extern unsigned struct_tm_sz;
26e4bdda51b3469aa0f6ef6f6c4656419effa48038Evgeniy Stepanov  extern unsigned struct_passwd_sz;
27103a63ed3fb5511516b55ce1ee4f33290209f3d8Evgeniy Stepanov  extern unsigned struct_group_sz;
28e4bdda51b3469aa0f6ef6f6c4656419effa48038Evgeniy Stepanov  extern unsigned struct_sigaction_sz;
29897a4ae31f5c55255c78854b69b4cd4a4e3c7c39Evgeniy Stepanov  extern unsigned siginfo_t_sz;
30e4bdda51b3469aa0f6ef6f6c4656419effa48038Evgeniy Stepanov  extern unsigned struct_itimerval_sz;
31e4bdda51b3469aa0f6ef6f6c4656419effa48038Evgeniy Stepanov  extern unsigned pthread_t_sz;
32745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned pid_t_sz;
33745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned timeval_sz;
34745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned uid_t_sz;
354fb04a8445076debf51d220f75211584b89043c8Evgeniy Stepanov
364fb04a8445076debf51d220f75211584b89043c8Evgeniy Stepanov#if !SANITIZER_ANDROID
37072770202bb1002172abe9a4b1eeb7f2d2fb004fEvgeniy Stepanov  extern unsigned ucontext_t_sz;
384fb04a8445076debf51d220f75211584b89043c8Evgeniy Stepanov#endif // !SANITIZER_ANDROID
399358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov
4024e13723f8477d8c42ab8b2a7f4f69fc089842f1Evgeniy Stepanov#if SANITIZER_LINUX
4178c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  extern unsigned struct_rlimit_sz;
4278c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  extern unsigned struct_dirent_sz;
4378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  extern unsigned struct_statfs_sz;
4478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  extern unsigned struct_epoll_event_sz;
45359d7fc7daf099ab8ef9a860564542d2581544aaEvgeniy Stepanov  extern unsigned struct_sysinfo_sz;
46e4bdda51b3469aa0f6ef6f6c4656419effa48038Evgeniy Stepanov  extern unsigned struct_timespec_sz;
4746f9395baf65e17f1a3f7a3a1deee72a1560ac53Alexey Samsonov#endif // SANITIZER_LINUX
4878c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
4924e13723f8477d8c42ab8b2a7f4f69fc089842f1Evgeniy Stepanov#if SANITIZER_LINUX && !SANITIZER_ANDROID
50e4cded90e63cfe6c59d438dec63b6665f774ac16Evgeniy Stepanov  extern unsigned struct_dirent64_sz;
51b711ca6e040d0ac4adb79e688e1a59afcc871d20Evgeniy Stepanov  extern unsigned struct_rlimit64_sz;
52b711ca6e040d0ac4adb79e688e1a59afcc871d20Evgeniy Stepanov  extern unsigned struct_statfs64_sz;
5346f9395baf65e17f1a3f7a3a1deee72a1560ac53Alexey Samsonov#endif // SANITIZER_LINUX && !SANITIZER_ANDROID
54b711ca6e040d0ac4adb79e688e1a59afcc871d20Evgeniy Stepanov
559666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov  struct __sanitizer_iovec {
569666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    void  *iov_base;
579666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    uptr iov_len;
589666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov  };
599666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov
60e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov#if SANITIZER_ANDROID || SANITIZER_MAC
61e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov  struct __sanitizer_msghdr {
62e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    void *msg_name;
63e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    unsigned msg_namelen;
64e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    struct __sanitizer_iovec *msg_iov;
65e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    unsigned msg_iovlen;
66e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    void *msg_control;
67e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    unsigned msg_controllen;
68e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    int msg_flags;
69e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov  };
70e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov  struct __sanitizer_cmsghdr {
71e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    unsigned cmsg_len;
72e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    int cmsg_level;
73e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov    int cmsg_type;
74e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov  };
75e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov#else
769666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov  struct __sanitizer_msghdr {
779666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    void *msg_name;
789666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    unsigned msg_namelen;
799666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    struct __sanitizer_iovec *msg_iov;
809666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    uptr msg_iovlen;
819666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    void *msg_control;
829666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    uptr msg_controllen;
839666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    int msg_flags;
849666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov  };
859666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov  struct __sanitizer_cmsghdr {
869666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    uptr cmsg_len;
879666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    int cmsg_level;
889666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov    int cmsg_type;
899666d89b628867b2c790d5415f0371fdb4050b0cEvgeniy Stepanov  };
90e215980807069d7bdeb1beff8377b3fe7be33c5fEvgeniy Stepanov#endif
9110fd3227546d17c7411241a45ebc143b2031c78dEvgeniy Stepanov
9210fd3227546d17c7411241a45ebc143b2031c78dEvgeniy Stepanov  // This thing depends on the platform. We are only interested in the upper
9310fd3227546d17c7411241a45ebc143b2031c78dEvgeniy Stepanov  // limit. Verified with a compiler assert in .cc.
9410fd3227546d17c7411241a45ebc143b2031c78dEvgeniy Stepanov  const int pthread_attr_t_max_sz = 128;
9510fd3227546d17c7411241a45ebc143b2031c78dEvgeniy Stepanov  union __sanitizer_pthread_attr_t {
960ecc4379bbb04f1d03ceb58f6a0751790fb17c75Evgeniy Stepanov    char size[pthread_attr_t_max_sz]; // NOLINT
9710fd3227546d17c7411241a45ebc143b2031c78dEvgeniy Stepanov    void *align;
9810fd3227546d17c7411241a45ebc143b2031c78dEvgeniy Stepanov  };
9906658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov
10006658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  uptr __sanitizer_get_sigaction_sa_sigaction(void *act);
10106658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  void __sanitizer_set_sigaction_sa_sigaction(void *act, uptr cb);
10206658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  bool __sanitizer_get_sigaction_sa_siginfo(void *act);
10306658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov
10406658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  const unsigned struct_sigaction_max_sz = 256;
10506658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  union __sanitizer_sigaction {
10606658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov    char size[struct_sigaction_max_sz]; // NOLINT
10706658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  };
10806658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov
10906658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  extern uptr sig_ign;
11006658ea68c4912fffafef6e65f36dce7faa4a174Evgeniy Stepanov  extern uptr sig_dfl;
1119530eb721dfacdf2c3f46d408e22d3f7cf8be667Evgeniy Stepanov
112745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#if SANITIZER_LINUX
113745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern int e_tabsz;
114745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#endif
115745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov
1169d60087654f89e3452841350d9eca97644edca9dEvgeniy Stepanov  extern int af_inet;
1179d60087654f89e3452841350d9eca97644edca9dEvgeniy Stepanov  extern int af_inet6;
1189530eb721dfacdf2c3f46d408e22d3f7cf8be667Evgeniy Stepanov  uptr __sanitizer_in_addr_sz(int af);
1191aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov
1201aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov#if SANITIZER_LINUX
1211aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov  struct __sanitizer_dl_phdr_info {
1221aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov    uptr dlpi_addr;
1231aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov    const char *dlpi_name;
1241aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov    const void *dlpi_phdr;
1251aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov    short dlpi_phnum;
1261aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov  };
1271aad6b5444207887ecea2b9e87526585d1ce0592Evgeniy Stepanov#endif
128447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov
129447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov  struct __sanitizer_addrinfo {
130447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov    int ai_flags;
131447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov    int ai_family;
132447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov    int ai_socktype;
133447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov    int ai_protocol;
134a05fd3189eec45af6d737be89194471c0972905dEvgeniy Stepanov#if SANITIZER_ANDROID || SANITIZER_MAC
13573c9878bec490bbc1dab4ee8df91a8e5b3bfc5cfEvgeniy Stepanov    unsigned ai_addrlen;
13673c9878bec490bbc1dab4ee8df91a8e5b3bfc5cfEvgeniy Stepanov    char *ai_canonname;
13773c9878bec490bbc1dab4ee8df91a8e5b3bfc5cfEvgeniy Stepanov    void *ai_addr;
13873c9878bec490bbc1dab4ee8df91a8e5b3bfc5cfEvgeniy Stepanov#else // LINUX
13900c35cfe108797f6677252fd77214c0cbccb5c5bEvgeniy Stepanov    unsigned ai_addrlen;
14073c9878bec490bbc1dab4ee8df91a8e5b3bfc5cfEvgeniy Stepanov    void *ai_addr;
14173c9878bec490bbc1dab4ee8df91a8e5b3bfc5cfEvgeniy Stepanov    char *ai_canonname;
14273c9878bec490bbc1dab4ee8df91a8e5b3bfc5cfEvgeniy Stepanov#endif
143447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov    struct __sanitizer_addrinfo *ai_next;
144447ef19d1b8cebbeaba49e4be22ac721448dcf3eEvgeniy Stepanov  };
1450a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov
1460a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov  struct __sanitizer_hostent {
1470a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov    char *h_name;
1480a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov    char **h_aliases;
1490a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov    int h_addrtype;
1500a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov    int h_length;
1510a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov    char **h_addr_list;
1520a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov  };
1530a2cc37712a452525f9f03b3bf67b1f0a97c8d3aEvgeniy Stepanov
154745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  // ioctl arguments
1554757c47ba7356aec3a7d49e5e929c19159d75a01Evgeniy Stepanov  struct __sanitizer_ifconf {
1564757c47ba7356aec3a7d49e5e929c19159d75a01Evgeniy Stepanov    int ifc_len;
1574757c47ba7356aec3a7d49e5e929c19159d75a01Evgeniy Stepanov    union {
1584757c47ba7356aec3a7d49e5e929c19159d75a01Evgeniy Stepanov      void *ifcu_req;
1594757c47ba7356aec3a7d49e5e929c19159d75a01Evgeniy Stepanov    } ifc_ifcu;
16089d1eee9f468823cc7f01b0d5281a5c9f64a4c31Evgeniy Stepanov#if SANITIZER_MAC
16189d1eee9f468823cc7f01b0d5281a5c9f64a4c31Evgeniy Stepanov  } __attribute__((packed));
16289d1eee9f468823cc7f01b0d5281a5c9f64a4c31Evgeniy Stepanov#else
1634757c47ba7356aec3a7d49e5e929c19159d75a01Evgeniy Stepanov  };
16489d1eee9f468823cc7f01b0d5281a5c9f64a4c31Evgeniy Stepanov#endif
1654757c47ba7356aec3a7d49e5e929c19159d75a01Evgeniy Stepanov
1664612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov#define IOC_SIZE(nr) (((nr) >> 16) & 0x3fff)
1674612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov
168745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_arpreq_sz;
169745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_ifreq_sz;
170745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_termios_sz;
171745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_winsize_sz;
172745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov
173745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#if SANITIZER_LINUX
174745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_msf_sz;
175745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_multisession_sz;
176745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_read_audio_sz;
177745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_subchnl_sz;
178745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_ti_sz;
179745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_tocentry_sz;
180745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_tochdr_sz;
181745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cdrom_volctrl_sz;
182745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_copr_buffer_sz;
183745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_copr_debug_buf_sz;
184745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_copr_msg_sz;
1854612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned struct_ff_effect_sz;
186745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_floppy_drive_params_sz;
187745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_floppy_drive_struct_sz;
188745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_floppy_fdc_state_sz;
189745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_floppy_max_errors_sz;
190745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_floppy_raw_cmd_sz;
191745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_floppy_struct_sz;
192745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_floppy_write_errors_sz;
193745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_format_descr_sz;
194745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_hd_driveid_sz;
195745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_hd_geometry_sz;
1964612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned struct_input_absinfo_sz;
1974612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned struct_input_id_sz;
198745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_midi_info_sz;
199745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_mtget_sz;
200745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_mtop_sz;
201745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_mtpos_sz;
202745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_rtentry_sz;
203745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_sbi_instrument_sz;
204745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_seq_event_rec_sz;
205745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_synth_info_sz;
206745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_termio_sz;
207745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_vt_consize_sz;
208745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_vt_mode_sz;
209745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_vt_sizes_sz;
210745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_vt_stat_sz;
211745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#endif
212745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov
213745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#if SANITIZER_LINUX && !SANITIZER_ANDROID
2144612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned mpu_command_rec_sz;
215745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_audio_buf_info_sz;
216745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_ax25_parms_struct_sz;
217745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_cyclades_monitor_sz;
2184612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned struct_input_keymap_entry_sz;
219745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_ipx_config_data_sz;
220745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_kbdiacrs_sz;
221745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_kbentry_sz;
222745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_kbkeycode_sz;
223745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_kbsentry_sz;
224745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_mtconfiginfo_sz;
225745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_nr_parms_struct_sz;
226745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_ppp_stats_sz;
227745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_scc_modem_sz;
228745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_scc_stat_sz;
229745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_serial_multiport_struct_sz;
230745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_serial_struct_sz;
231745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_sockaddr_ax25_sz;
232745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_unimapdesc_sz;
233745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_unimapinit_sz;
234745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#endif
2354f0fd8e131b6c2f13244a0fd808abe0da7a50983Dmitry Vyukov
236745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#if !SANITIZER_ANDROID
237745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_sioc_sg_req_sz;
238745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov  extern unsigned struct_sioc_vif_req_sz;
239745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#endif
2402557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov
2412557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  // ioctl request identifiers
242bb273d554d61c1a851158b0c79c2d3f51a845bbdEvgeniy Stepanov
243bb273d554d61c1a851158b0c79c2d3f51a845bbdEvgeniy Stepanov  // A special value to mark ioctls that are not present on the target platform,
244bb273d554d61c1a851158b0c79c2d3f51a845bbdEvgeniy Stepanov  // when it can not be determined without including any system headers.
245bb273d554d61c1a851158b0c79c2d3f51a845bbdEvgeniy Stepanov  extern unsigned IOCTL_NOT_PRESENT;
246bb273d554d61c1a851158b0c79c2d3f51a845bbdEvgeniy Stepanov
2472557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FIOASYNC;
2482557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FIOCLEX;
2492557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FIOGETOWN;
2502557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FIONBIO;
2512557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FIONCLEX;
2522557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FIOSETOWN;
2532557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCADDMULTI;
2542557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCATMARK;
2552557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCDELMULTI;
2562557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFADDR;
2572557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFBRDADDR;
2582557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFCONF;
2592557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFDSTADDR;
2602557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFFLAGS;
2612557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFMETRIC;
2622557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFMTU;
2632557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFNETMASK;
2642557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGPGRP;
2652557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFADDR;
2662557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFBRDADDR;
2672557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFDSTADDR;
2682557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFFLAGS;
2692557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFMETRIC;
2702557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFMTU;
2712557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFNETMASK;
2722557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSPGRP;
2732557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCCONS;
2742557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCEXCL;
2752557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCGETD;
2762557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCGPGRP;
2772557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCGWINSZ;
2782557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCMBIC;
2792557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCMBIS;
2802557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCMGET;
2812557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCMSET;
2822557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCNOTTY;
2832557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCNXCL;
2842557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCOUTQ;
2852557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCPKT;
2862557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSCTTY;
2872557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSETD;
2882557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSPGRP;
2892557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSTI;
2902557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSWINSZ;
2912557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov#if (SANITIZER_LINUX && !SANITIZER_ANDROID) || SANITIZER_MAC
2922557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGETSGCNT;
2932557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGETVIFCNT;
2942557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov#endif
2952557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov#if SANITIZER_LINUX
2964612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGABS;
2974612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGBIT;
2984612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGEFFECTS;
2994612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGID;
3004612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGKEY;
3014612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGKEYCODE;
3024612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGLED;
3034612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGNAME;
3044612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGPHYS;
3054612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGRAB;
3064612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGREP;
3074612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGSND;
3084612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGSW;
3094612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGUNIQ;
3104612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGVERSION;
3114612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCRMFF;
3124612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCSABS;
3134612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCSFF;
3144612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCSKEYCODE;
3154612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCSREP;
3162557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_BLKFLSBUF;
3172557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_BLKGETSIZE;
3182557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_BLKRAGET;
3192557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_BLKRASET;
3202557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_BLKROGET;
3212557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_BLKROSET;
3222557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_BLKRRPART;
3232557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMAUDIOBUFSIZ;
3242557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMEJECT;
3252557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMEJECT_SW;
3262557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMMULTISESSION;
3272557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMPAUSE;
3282557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMPLAYMSF;
3292557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMPLAYTRKIND;
3302557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMREADAUDIO;
3312557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMREADCOOKED;
3322557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMREADMODE1;
3332557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMREADMODE2;
3342557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMREADRAW;
3352557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMREADTOCENTRY;
3362557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMREADTOCHDR;
3372557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMRESET;
3382557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMRESUME;
3392557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMSEEK;
3402557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMSTART;
3412557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMSTOP;
3422557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMSUBCHNL;
3432557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMVOLCTRL;
3442557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROMVOLREAD;
3452557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CDROM_GET_UPC;
3462557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDCLRPRM;
3472557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDDEFPRM;
3482557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDFLUSH;
3492557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDFMTBEG;
3502557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDFMTEND;
3512557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDFMTTRK;
3522557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDGETDRVPRM;
3532557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDGETDRVSTAT;
3542557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDGETDRVTYP;
3552557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDGETFDCSTAT;
3562557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDGETMAXERRS;
3572557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDGETPRM;
3582557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDMSGOFF;
3592557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDMSGON;
3602557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDPOLLDRVSTAT;
3612557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDRAWCMD;
3622557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDRESET;
3632557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDSETDRVPRM;
3642557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDSETEMSGTRESH;
3652557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDSETMAXERRS;
3662557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDSETPRM;
3672557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDTWADDLE;
3682557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDWERRORCLR;
3692557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_FDWERRORGET;
3702557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_DRIVE_CMD;
3712557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GETGEO;
3722557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GET_32BIT;
3732557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GET_DMA;
3742557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GET_IDENTITY;
3752557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GET_KEEPSETTINGS;
3762557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GET_MULTCOUNT;
3772557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GET_NOWERR;
3782557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_GET_UNMASKINTR;
3792557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_SET_32BIT;
3802557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_SET_DMA;
3812557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_SET_KEEPSETTINGS;
3822557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_SET_MULTCOUNT;
3832557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_SET_NOWERR;
3842557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_HDIO_SET_UNMASKINTR;
3852557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_MTIOCGET;
3862557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_MTIOCPOS;
3872557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_MTIOCTOP;
3882557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCGASYNCMAP;
3892557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCGDEBUG;
3902557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCGFLAGS;
3912557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCGUNIT;
3922557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCGXASYNCMAP;
3932557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCSASYNCMAP;
3942557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCSDEBUG;
3952557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCSFLAGS;
3962557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCSMAXCID;
3972557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCSMRU;
3982557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PPPIOCSXASYNCMAP;
3992557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCADDRT;
4002557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCDARP;
4012557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCDELRT;
4022557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCDRARP;
4032557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGARP;
4042557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFENCAP;
4052557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFHWADDR;
4062557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFMAP;
4072557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFMEM;
4082557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFNAME;
4092557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGIFSLAVE;
4102557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGRARP;
4112557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCGSTAMP;
4122557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSARP;
4132557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFENCAP;
4142557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFHWADDR;
4152557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFLINK;
4162557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFMAP;
4172557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFMEM;
4182557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSIFSLAVE;
4192557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCSRARP;
4202557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_HALT;
4212557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_LOAD;
4222557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_RCODE;
4232557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_RCVMSG;
4242557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_RDATA;
4252557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_RESET;
4262557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_RUN;
4272557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_SENDMSG;
4282557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_WCODE;
4292557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_COPR_WDATA;
4302557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_GETBLKSIZE;
4312557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_GETFMTS;
4322557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_NONBLOCK;
4332557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_POST;
4342557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_RESET;
4352557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_SETFMT;
4362557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_SETFRAGMENT;
4372557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_SPEED;
4382557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_STEREO;
4392557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_SUBDIVIDE;
4402557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_SYNC;
4412557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_FM_4OP_ENABLE;
4422557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_FM_LOAD_INSTR;
4432557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_MIDI_INFO;
4442557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_MIDI_MPUMODE;
4452557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_MIDI_PRETIME;
4462557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_CTRLRATE;
4472557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_GETINCOUNT;
4482557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_GETOUTCOUNT;
4492557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_NRMIDIS;
4502557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_NRSYNTHS;
4512557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_OUTOFBAND;
4522557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_PANIC;
4532557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_PERCMODE;
4542557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_RESET;
4552557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_RESETSAMPLES;
4562557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_SYNC;
4572557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_TESTMIDI;
4582557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SEQ_THRESHOLD;
4592557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SYNTH_INFO;
4602557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_SYNTH_MEMAVL;
4612557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_CONTINUE;
4622557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_METRONOME;
4632557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_SELECT;
4642557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_SOURCE;
4652557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_START;
4662557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_STOP;
4672557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_TEMPO;
4682557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_TMR_TIMEBASE;
4692557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_ALTPCM;
4702557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_BASS;
4712557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_CAPS;
4722557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_CD;
4732557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_DEVMASK;
4742557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_ENHANCE;
4752557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_IGAIN;
4762557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_IMIX;
4772557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_LINE1;
4782557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_LINE2;
4792557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_LINE3;
4802557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_LINE;
4812557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_LOUD;
4822557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_MIC;
4832557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_MUTE;
4842557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_OGAIN;
4852557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_PCM;
4862557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_RECLEV;
4872557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_RECMASK;
4882557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_RECSRC;
4892557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_SPEAKER;
4902557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_STEREODEVS;
4912557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_SYNTH;
4922557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_TREBLE;
4932557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_READ_VOLUME;
4942557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_ALTPCM;
4952557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_BASS;
4962557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_CD;
4972557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_ENHANCE;
4982557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_IGAIN;
4992557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_IMIX;
5002557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE1;
5012557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE2;
5022557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE3;
5032557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE;
5042557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_LOUD;
5052557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_MIC;
5062557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_MUTE;
5072557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_OGAIN;
5082557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_PCM;
5092557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_RECLEV;
5102557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_RECSRC;
5112557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_SPEAKER;
5122557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_SYNTH;
5132557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_TREBLE;
5142557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_MIXER_WRITE_VOLUME;
5152557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_PCM_READ_BITS;
5162557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_PCM_READ_CHANNELS;
5172557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_PCM_READ_FILTER;
5182557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_PCM_READ_RATE;
5192557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_PCM_WRITE_CHANNELS;
5202557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SOUND_PCM_WRITE_FILTER;
5212557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCFLSH;
5222557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCGETA;
5232557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCGETS;
5242557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSBRK;
5252557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSBRKP;
5262557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSETA;
5272557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSETAF;
5282557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSETAW;
5292557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSETS;
5302557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSETSF;
5312557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCSETSW;
5322557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TCXONC;
5332557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCGLCKTRMIOS;
5342557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCGSOFTCAR;
5352557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCINQ;
5362557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCLINUX;
5372557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSERCONFIG;
5382557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSERGETLSR;
5392557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSERGWILD;
5402557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSERSWILD;
5412557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSLCKTRMIOS;
5422557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSSOFTCAR;
5432557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_ACTIVATE;
5442557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_DISALLOCATE;
5452557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_GETMODE;
5462557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_GETSTATE;
5472557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_OPENQRY;
5482557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_RELDISP;
5492557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_RESIZE;
5502557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_RESIZEX;
5512557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_SENDSIG;
5522557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_SETMODE;
5532557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_VT_WAITACTIVE;
5542557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov#endif
5552557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov#if SANITIZER_LINUX && !SANITIZER_ANDROID
5562557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYGETDEFTHRESH;
5572557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYGETDEFTIMEOUT;
5582557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYGETMON;
5592557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYGETTHRESH;
5602557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYGETTIMEOUT;
5612557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYSETDEFTHRESH;
5622557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYSETDEFTIMEOUT;
5632557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYSETTHRESH;
5642557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_CYSETTIMEOUT;
5652557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_EQL_EMANCIPATE;
5662557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_EQL_ENSLAVE;
5672557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_EQL_GETMASTRCFG;
5682557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_EQL_GETSLAVECFG;
5692557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_EQL_SETMASTRCFG;
5702557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_EQL_SETSLAVECFG;
5714612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGKEYCODE_V2;
5724612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCGPROP;
5734612abac2e172e077246cec0fcbed291f55a1d02Evgeniy Stepanov  extern unsigned IOCTL_EVIOCSKEYCODE_V2;
5747028c1ee187302ace4fa3530769458c0b3caf946Evgeniy Stepanov  extern unsigned IOCTL_FS_IOC_GETFLAGS;
5757028c1ee187302ace4fa3530769458c0b3caf946Evgeniy Stepanov  extern unsigned IOCTL_FS_IOC_GETVERSION;
5767028c1ee187302ace4fa3530769458c0b3caf946Evgeniy Stepanov  extern unsigned IOCTL_FS_IOC_SETFLAGS;
5777028c1ee187302ace4fa3530769458c0b3caf946Evgeniy Stepanov  extern unsigned IOCTL_FS_IOC_SETVERSION;
5782557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_GIO_CMAP;
5792557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_GIO_FONT;
5802557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_GIO_SCRNMAP;
5812557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_GIO_UNIMAP;
5822557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_GIO_UNISCRNMAP;
5832557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDADDIO;
5842557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDDELIO;
5852557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDDISABIO;
5862557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDENABIO;
5872557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGETKEYCODE;
5882557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGETLED;
5892557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGETMODE;
5902557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGKBDIACR;
5912557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGKBENT;
5922557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGKBLED;
5932557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGKBMETA;
5942557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGKBMODE;
5952557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGKBSENT;
5962557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDGKBTYPE;
5972557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDMAPDISP;
5982557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDMKTONE;
5992557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSETKEYCODE;
6002557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSETLED;
6012557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSETMODE;
6022557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSIGACCEPT;
6032557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSKBDIACR;
6042557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSKBENT;
6052557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSKBLED;
6062557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSKBMETA;
6072557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSKBMODE;
6082557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDSKBSENT;
6092557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KDUNMAPDISP;
6102557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_KIOCSOUND;
6112557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPABORT;
6122557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPABORTOPEN;
6132557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPCAREFUL;
6142557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPCHAR;
6152557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPGETIRQ;
6162557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPGETSTATUS;
6172557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPRESET;
6182557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPSETIRQ;
6192557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPTIME;
6202557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_LPWAIT;
6212557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_MTIOCGETCONFIG;
6222557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_MTIOCSETCONFIG;
6232557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PIO_CMAP;
6242557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PIO_FONT;
6252557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PIO_SCRNMAP;
6262557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PIO_UNIMAP;
6272557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PIO_UNIMAPCLR;
6282557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_PIO_UNISCRNMAP;
6292557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SCSI_IOCTL_GET_IDLUN;
6302557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SCSI_IOCTL_PROBE_HOST;
6312557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SCSI_IOCTL_TAGGED_DISABLE;
6322557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SCSI_IOCTL_TAGGED_ENABLE;
6332557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAIPXITFCRT;
6342557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAIPXPRISLT;
6352557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAX25ADDUID;
6362557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAX25DELUID;
6372557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAX25GETPARMS;
6382557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAX25GETUID;
6392557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAX25NOUID;
6402557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCAX25SETPARMS;
6412557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCDEVPLIP;
6422557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCIPXCFGDATA;
6432557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCNRDECOBS;
6442557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCNRGETPARMS;
6452557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCNRRTCTL;
6462557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SIOCNRSETPARMS;
6472557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_GETISPACE;
6482557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_SNDCTL_DSP_GETOSPACE;
6492557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCGSERIAL;
6502557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSERGETMULTI;
6512557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSERSETMULTI;
6522557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov  extern unsigned IOCTL_TIOCSSERIAL;
6532557a1b4517971c9cf1aff62425fc48561db9949Evgeniy Stepanov#endif
6549358c58d0aaf1b20f17362af354d4c3c1309276aEvgeniy Stepanov}  // namespace __sanitizer
65578c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
65678c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov#endif
657745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov
658