sanitizer_platform_limits_posix.cc revision b5cf98f76fd62236f2945bff17b3cdb4e8a5c2f4
10a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org//===-- sanitizer_platform_limits_posix.cc --------------------------------===//
2a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//
3a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//                     The LLVM Compiler Infrastructure
4a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//
5a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// This file is distributed under the University of Illinois Open Source
6a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// License. See LICENSE.TXT for details.
7a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//
8a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//===----------------------------------------------------------------------===//
9a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//
10a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// This file is a part of Sanitizer common code.
11a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//
12a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// Sizes and layouts of platform-specific POSIX data structures.
13a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//===----------------------------------------------------------------------===//
14a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
15a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
16a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include "sanitizer_platform.h"
17a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX || SANITIZER_MAC
18a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
19a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include "sanitizer_internal_defs.h"
20a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include "sanitizer_platform_limits_posix.h"
21a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
22a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <arpa/inet.h>
23a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <dirent.h>
24a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <grp.h>
25a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <net/if.h>
26a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <net/if_arp.h>
27a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <net/route.h>
28a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <netdb.h>
29a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <pthread.h>
30a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <pwd.h>
31a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <signal.h>
327979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org#include <stddef.h>
331c09276ce2ac5214e81ca554360b9f101187893blrn@chromium.org#include <sys/resource.h>
34a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/socket.h>
35fb144a0716afe7ab8bf245f2391a9e53b3db3c89fschneider@chromium.org#include <sys/stat.h>
367979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org#include <sys/time.h>
37a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/types.h>
38ddda9e81d3175130f2029c0e1205d265a00c32edjkummerow@chromium.org#include <sys/utsname.h>
39ddda9e81d3175130f2029c0e1205d265a00c32edjkummerow@chromium.org#include <termios.h>
40a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <time.h>
41a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
42a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX
43a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/mount.h>
44a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/sysinfo.h>
45a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/vt.h>
46a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/cdrom.h>
47a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/fd.h>
48a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/fs.h>
49a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/hdreg.h>
50a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/input.h>
51a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/ioctl.h>
52a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/soundcard.h>
53a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
54a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
55dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org#if !SANITIZER_ANDROID
56a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/ucontext.h>
57a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
58a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
59a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX && !SANITIZER_ANDROID
60a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <net/if_ppp.h>
61a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <netax25/ax25.h>
6231b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org#include <netipx/ipx.h>
63a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <netrom/netrom.h>
64a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <scsi/scsi.h>
65a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/mtio.h>
66a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/kd.h>
67a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/cyclades.h>
68a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/if_eql.h>
69a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/if_plip.h>
70a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/lp.h>
71a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/mroute.h>
72a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/mroute6.h>
73a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/scc.h>
74a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/serial.h>
75a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif // SANITIZER_LINUX && !SANITIZER_ANDROID
764f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org
77a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_ANDROID
78a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/kd.h>
79a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/mtio.h>
80a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/ppp_defs.h>
81a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <linux/if_ppp.h>
82a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
83a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
84a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX
85a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <link.h>
86a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/vfs.h>
87a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/epoll.h>
88a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif // SANITIZER_LINUX
89a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
90a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_MAC
91a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <netinet/ip_mroute.h>
92a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include <sys/filio.h>
93c53e10d01c5495df3896b9d318910b58688c6929kmillikin@chromium.org#include <sys/sockio.h>
944f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org#endif
954f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org
964f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.orgnamespace __sanitizer {
974f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org  unsigned struct_dirent_sz = sizeof(struct dirent);
980a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org  unsigned struct_utsname_sz = sizeof(struct utsname);
994f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org  unsigned struct_stat_sz = sizeof(struct stat);
100a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_stat64_sz = sizeof(struct stat64);
10183aa54905e559090bea7771b83f188762cfcf082ricow@chromium.org  unsigned struct_rusage_sz = sizeof(struct rusage);
102a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_tm_sz = sizeof(struct tm);
103a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_passwd_sz = sizeof(struct passwd);
104a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_group_sz = sizeof(struct group);
1057b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org  unsigned siginfo_t_sz = sizeof(siginfo_t);
106a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_sigaction_sz = sizeof(struct sigaction);
1074acdc2c8d4caecf7606db8af710366c1d6e28fe5whesse@chromium.org  unsigned struct_itimerval_sz = sizeof(struct itimerval);
108c53e10d01c5495df3896b9d318910b58688c6929kmillikin@chromium.org  unsigned pthread_t_sz = sizeof(pthread_t);
109a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned pid_t_sz = sizeof(pid_t);
11049edbdf52640c88918f8e6638ab4965819eb1dfekmillikin@chromium.org  unsigned timeval_sz = sizeof(timeval);
111a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned uid_t_sz = sizeof(uid_t);
112a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
113a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if !SANITIZER_ANDROID
1144f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org  unsigned ucontext_t_sz = sizeof(ucontext_t);
1154f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org#endif // !SANITIZER_ANDROID
1163847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com
117a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX
118d2c22f0121ebc55ee26a9e742f0fd7c0b8397730kmillikin@chromium.org  unsigned struct_rlimit_sz = sizeof(struct rlimit);
119160a7b0747492f3f735353d9582521f3314bf4dfdanno@chromium.org  unsigned struct_statfs_sz = sizeof(struct statfs);
1204f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org  unsigned struct_epoll_event_sz = sizeof(struct epoll_event);
1214f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org  unsigned struct_sysinfo_sz = sizeof(struct sysinfo);
1224f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org  unsigned struct_timespec_sz = sizeof(struct timespec);
1234f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org#endif // SANITIZER_LINUX
1244f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org
1259e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#if SANITIZER_LINUX && !SANITIZER_ANDROID
126a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_dirent64_sz = sizeof(struct dirent64);
127c6c5718277d4047fad1e034396228ce15571b5a4sgjesse@chromium.org  unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
128a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_statfs64_sz = sizeof(struct statfs64);
1294d3fe4e246b0312eba361689f288ddf8dd516960danno@chromium.org#endif // SANITIZER_LINUX && !SANITIZER_ANDROID
130378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org
131c36ce6e8979bbbd43539f0a0effc87ea20dd65cckmillikin@chromium.org  uptr sig_ign = (uptr)SIG_IGN;
132c36ce6e8979bbbd43539f0a0effc87ea20dd65cckmillikin@chromium.org  uptr sig_dfl = (uptr)SIG_DFL;
133717967fd64e99e759ff094df6f069440cc866266rossberg@chromium.org
134a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX
135a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  int e_tabsz = (int)E_TABSZ;
1367979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org#endif
137a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
1387979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org  uptr __sanitizer_get_sigaction_sa_sigaction(void *act) {
139a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    struct sigaction *a = (struct sigaction *)act;
140a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    // Check that sa_sigaction and sa_handler are the same.
141a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    CHECK((void *)&(a->sa_sigaction) == (void *)&(a->sa_handler));
142a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    return (uptr) a->sa_sigaction;
143a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  }
14483aa54905e559090bea7771b83f188762cfcf082ricow@chromium.org  void __sanitizer_set_sigaction_sa_sigaction(void *act, uptr cb) {
145a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    struct sigaction *a = (struct sigaction *)act;
1465f0c45f2cacb31d36a8f80c31f17bda7751a3644ager@chromium.org    a->sa_sigaction = (void (*)(int, siginfo_t *, void *))cb;
147a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  }
148a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  bool __sanitizer_get_sigaction_sa_siginfo(void *act) {
149a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    struct sigaction *a = (struct sigaction *)act;
150a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    return a->sa_flags & SA_SIGINFO;
151a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  }
152a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
153a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  int af_inet = (int)AF_INET;
154e297f5973a8a9ff0d9945da3f1e2d8a6230c294djkummerow@chromium.org  int af_inet6 = (int)AF_INET6;
155a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
15683aa54905e559090bea7771b83f188762cfcf082ricow@chromium.org  uptr __sanitizer_in_addr_sz(int af) {
15774f333bce721daf6b1f9d7d3d3faa623f77658d7vegorov@chromium.org    if (af == AF_INET)
15874f333bce721daf6b1f9d7d3d3faa623f77658d7vegorov@chromium.org      return sizeof(struct in_addr);
159717967fd64e99e759ff094df6f069440cc866266rossberg@chromium.org    else if (af == AF_INET6)
160a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org      return sizeof(struct in6_addr);
161a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org    else
162d2be901879306d8ff27e78e37783028d581d46fcricow@chromium.org      return 0;
163a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  }
164a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
165160a7b0747492f3f735353d9582521f3314bf4dfdanno@chromium.org  // ioctl arguments
1660a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org  unsigned struct_arpreq_sz = sizeof(struct arpreq);
167b08986cb66c3f6687247cb6da186c1e73057e399whesse@chromium.org  unsigned struct_ifreq_sz = sizeof(struct ifreq);
1680a4e901cdfb5505a896d30aa8c2e04fce0fbe069vegorov@chromium.org  unsigned struct_termios_sz = sizeof(struct termios);
169a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_winsize_sz = sizeof(struct winsize);
170d2be901879306d8ff27e78e37783028d581d46fcricow@chromium.org
171a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX
172ea88ce93dcb41a9200ec8747ae7642a5db1f4ce7sgjesse@chromium.org  unsigned struct_cdrom_msf_sz = sizeof(struct cdrom_msf);
173d2be901879306d8ff27e78e37783028d581d46fcricow@chromium.org  unsigned struct_cdrom_multisession_sz = sizeof(struct cdrom_multisession);
174a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_cdrom_read_audio_sz = sizeof(struct cdrom_read_audio);
1754f693d6b99ffdbc05e5e211e08ed5039e13279d2ricow@chromium.org  unsigned struct_cdrom_subchnl_sz = sizeof(struct cdrom_subchnl);
176a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_cdrom_ti_sz = sizeof(struct cdrom_ti);
177a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_cdrom_tocentry_sz = sizeof(struct cdrom_tocentry);
178d2be901879306d8ff27e78e37783028d581d46fcricow@chromium.org  unsigned struct_cdrom_tochdr_sz = sizeof(struct cdrom_tochdr);
179a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_cdrom_volctrl_sz = sizeof(struct cdrom_volctrl);
180a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SOUND_VERSION >= 0x040000
181a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_copr_buffer_sz = 0;
182a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_copr_debug_buf_sz = 0;
183a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_copr_msg_sz = 0;
184a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#else
185a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_copr_buffer_sz = sizeof(struct copr_buffer);
1862c99e28a7b1fcb3767dc7c0088514fe53be784c5ricow@chromium.org  unsigned struct_copr_debug_buf_sz = sizeof(struct copr_debug_buf);
1877979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org  unsigned struct_copr_msg_sz = sizeof(struct copr_msg);
188a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
189a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_ff_effect_sz = sizeof(struct ff_effect);
190a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_floppy_drive_params_sz = sizeof(struct floppy_drive_params);
19183aa54905e559090bea7771b83f188762cfcf082ricow@chromium.org  unsigned struct_floppy_drive_struct_sz = sizeof(struct floppy_drive_struct);
192a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_floppy_fdc_state_sz = sizeof(struct floppy_fdc_state);
193a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_floppy_max_errors_sz = sizeof(struct floppy_max_errors);
194dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_floppy_raw_cmd_sz = sizeof(struct floppy_raw_cmd);
195a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_floppy_struct_sz = sizeof(struct floppy_struct);
196a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_floppy_write_errors_sz = sizeof(struct floppy_write_errors);
197a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_format_descr_sz = sizeof(struct format_descr);
198a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_hd_driveid_sz = sizeof(struct hd_driveid);
199dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_hd_geometry_sz = sizeof(struct hd_geometry);
200a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_input_absinfo_sz = sizeof(struct input_absinfo);
201a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_input_id_sz = sizeof(struct input_id);
202dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_midi_info_sz = sizeof(struct midi_info);
203a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_mtget_sz = sizeof(struct mtget);
204dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_mtop_sz = sizeof(struct mtop);
205dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_mtpos_sz = sizeof(struct mtpos);
206dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_rtentry_sz = sizeof(struct rtentry);
207dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_sbi_instrument_sz = sizeof(struct sbi_instrument);
208dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
209a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_synth_info_sz = sizeof(struct synth_info);
210a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_termio_sz = sizeof(struct termio);
211a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_vt_consize_sz = sizeof(struct vt_consize);
212a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
2138f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned struct_vt_sizes_sz = sizeof(struct vt_sizes);
2148f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned struct_vt_stat_sz = sizeof(struct vt_stat);
2158f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org#endif
2168f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org
2178f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org#if SANITIZER_LINUX && !SANITIZER_ANDROID
218a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
219a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
2208f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
2218f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org#if EV_VERSION > (0x010000)
2228f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
2238f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org#else
224a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_input_keymap_entry_sz = 0;
225a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
226a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_ipx_config_data_sz = sizeof(struct ipx_config_data);
227a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_kbdiacrs_sz = sizeof(struct kbdiacrs);
228a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_kbentry_sz = sizeof(struct kbentry);
229a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_kbkeycode_sz = sizeof(struct kbkeycode);
230ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned struct_kbsentry_sz = sizeof(struct kbsentry);
231ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned struct_mtconfiginfo_sz = sizeof(struct mtconfiginfo);
232ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned struct_nr_parms_struct_sz = sizeof(struct nr_parms_struct);
233ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
234ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned struct_scc_modem_sz = sizeof(struct scc_modem);
235a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_scc_stat_sz = sizeof(struct scc_stat);
236a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_serial_multiport_struct_sz
237a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org      = sizeof(struct serial_multiport_struct);
238a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_serial_struct_sz = sizeof(struct serial_struct);
239a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_sockaddr_ax25_sz = sizeof(struct sockaddr_ax25);
2408f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned struct_unimapdesc_sz = sizeof(struct unimapdesc);
241ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned struct_unimapinit_sz = sizeof(struct unimapinit);
242ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org#endif
243ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org
2448f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org#if !SANITIZER_ANDROID
2458f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned struct_sioc_sg_req_sz = sizeof(struct sioc_sg_req);
246a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned struct_sioc_vif_req_sz = sizeof(struct sioc_vif_req);
2478f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org#endif
2488f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org
2495f0c45f2cacb31d36a8f80c31f17bda7751a3644ager@chromium.org  unsigned IOCTL_NOT_PRESENT = 0;
250a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
251a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FIOASYNC = FIOASYNC;
252a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FIOCLEX = FIOCLEX;
253a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FIOGETOWN = FIOGETOWN;
254a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FIONBIO = FIONBIO;
2558f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned IOCTL_FIONCLEX = FIONCLEX;
2568f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned IOCTL_FIOSETOWN = FIOSETOWN;
257a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCADDMULTI = SIOCADDMULTI;
2588f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned IOCTL_SIOCATMARK = SIOCATMARK;
2598f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned IOCTL_SIOCDELMULTI = SIOCDELMULTI;
2608f806e8b8f108ca2c8899c5d31861ef1273dcd4akarlklose@chromium.org  unsigned IOCTL_SIOCGIFADDR = SIOCGIFADDR;
261a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFBRDADDR = SIOCGIFBRDADDR;
262a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFCONF = SIOCGIFCONF;
263a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFDSTADDR = SIOCGIFDSTADDR;
264a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFFLAGS = SIOCGIFFLAGS;
265a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFMETRIC = SIOCGIFMETRIC;
266a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFMTU = SIOCGIFMTU;
267a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFNETMASK = SIOCGIFNETMASK;
268a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGPGRP = SIOCGPGRP;
269a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFADDR = SIOCSIFADDR;
270a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFBRDADDR = SIOCSIFBRDADDR;
271a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFDSTADDR = SIOCSIFDSTADDR;
272a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFFLAGS = SIOCSIFFLAGS;
273a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFMETRIC = SIOCSIFMETRIC;
274a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFMTU = SIOCSIFMTU;
275a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFNETMASK = SIOCSIFNETMASK;
276a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSPGRP = SIOCSPGRP;
277a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCCONS = TIOCCONS;
278a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCEXCL = TIOCEXCL;
279a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCGETD = TIOCGETD;
280496c03a64f12710e837204e261ef155601247895sgjesse@chromium.org  unsigned IOCTL_TIOCGPGRP = TIOCGPGRP;
281a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCGWINSZ = TIOCGWINSZ;
282a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCMBIC = TIOCMBIC;
283a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCMBIS = TIOCMBIS;
284a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCMGET = TIOCMGET;
285a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCMSET = TIOCMSET;
286a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCNOTTY = TIOCNOTTY;
287a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCNXCL = TIOCNXCL;
288a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCOUTQ = TIOCOUTQ;
289a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCPKT = TIOCPKT;
290496c03a64f12710e837204e261ef155601247895sgjesse@chromium.org  unsigned IOCTL_TIOCSCTTY = TIOCSCTTY;
291a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSETD = TIOCSETD;
2923a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_TIOCSPGRP = TIOCSPGRP;
293a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSTI = TIOCSTI;
294a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSWINSZ = TIOCSWINSZ;
295a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if (SANITIZER_LINUX && !SANITIZER_ANDROID) || SANITIZER_MAC
296a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_SIOCGETSGCNT = SIOCGETSGCNT;
297a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGETVIFCNT = SIOCGETVIFCNT;
298a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
299a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX
300a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGABS = EVIOCGABS(0);
301496c03a64f12710e837204e261ef155601247895sgjesse@chromium.org  unsigned IOCTL_EVIOCGBIT = EVIOCGBIT(0, 0);
302a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGEFFECTS = EVIOCGEFFECTS;
303a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGID = EVIOCGID;
304a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGKEY = EVIOCGKEY(0);
305a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGKEYCODE = EVIOCGKEYCODE;
306a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGLED = EVIOCGLED(0);
307a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGNAME = EVIOCGNAME(0);
308a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGPHYS = EVIOCGPHYS(0);
309a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGRAB = EVIOCGRAB;
310a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_EVIOCGREP = EVIOCGREP;
311a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_EVIOCGSND = EVIOCGSND(0);
312a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_EVIOCGSW = EVIOCGSW(0);
313a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_EVIOCGUNIQ = EVIOCGUNIQ(0);
314a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGVERSION = EVIOCGVERSION;
315a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCRMFF = EVIOCRMFF;
316a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCSABS = EVIOCSABS(0);
317a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCSFF = EVIOCSFF;
318a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCSKEYCODE = EVIOCSKEYCODE;
319a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCSREP = EVIOCSREP;
320a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_BLKFLSBUF = BLKFLSBUF;
321a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_BLKGETSIZE = BLKGETSIZE;
322a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_BLKRAGET = BLKRAGET;
323a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_BLKRASET = BLKRASET;
324a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_BLKROGET = BLKROGET;
325a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_BLKROSET = BLKROSET;
326a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_BLKRRPART = BLKRRPART;
327a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMAUDIOBUFSIZ = CDROMAUDIOBUFSIZ;
328a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMEJECT = CDROMEJECT;
329a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMEJECT_SW = CDROMEJECT_SW;
330a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMMULTISESSION = CDROMMULTISESSION;
331a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMPAUSE = CDROMPAUSE;
332a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMPLAYMSF = CDROMPLAYMSF;
333a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMPLAYTRKIND = CDROMPLAYTRKIND;
334a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMREADAUDIO = CDROMREADAUDIO;
335a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMREADCOOKED = CDROMREADCOOKED;
336a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMREADMODE1 = CDROMREADMODE1;
337a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMREADMODE2 = CDROMREADMODE2;
338a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMREADRAW = CDROMREADRAW;
339a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMREADTOCENTRY = CDROMREADTOCENTRY;
340a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMREADTOCHDR = CDROMREADTOCHDR;
341a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMRESET = CDROMRESET;
342a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMRESUME = CDROMRESUME;
343a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMSEEK = CDROMSEEK;
344a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMSTART = CDROMSTART;
345a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMSTOP = CDROMSTOP;
346a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMSUBCHNL = CDROMSUBCHNL;
347a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMVOLCTRL = CDROMVOLCTRL;
348a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROMVOLREAD = CDROMVOLREAD;
349a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CDROM_GET_UPC = CDROM_GET_UPC;
350a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDCLRPRM = FDCLRPRM;
351a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDDEFPRM = FDDEFPRM;
352a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDFLUSH = FDFLUSH;
353a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDFMTBEG = FDFMTBEG;
354a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDFMTEND = FDFMTEND;
355a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDFMTTRK = FDFMTTRK;
356a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDGETDRVPRM = FDGETDRVPRM;
357a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDGETDRVSTAT = FDGETDRVSTAT;
358a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDGETDRVTYP = FDGETDRVTYP;
359a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDGETFDCSTAT = FDGETFDCSTAT;
360a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDGETMAXERRS = FDGETMAXERRS;
361a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDGETPRM = FDGETPRM;
362a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDMSGOFF = FDMSGOFF;
363a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDMSGON = FDMSGON;
364a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDPOLLDRVSTAT = FDPOLLDRVSTAT;
365a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDRAWCMD = FDRAWCMD;
366a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDRESET = FDRESET;
367a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDSETDRVPRM = FDSETDRVPRM;
368a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDSETEMSGTRESH = FDSETEMSGTRESH;
369a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDSETMAXERRS = FDSETMAXERRS;
370a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDSETPRM = FDSETPRM;
371a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDTWADDLE = FDTWADDLE;
372a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDWERRORCLR = FDWERRORCLR;
373a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FDWERRORGET = FDWERRORGET;
374a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_DRIVE_CMD = HDIO_DRIVE_CMD;
375a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GETGEO = HDIO_GETGEO;
376a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GET_32BIT = HDIO_GET_32BIT;
377a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GET_DMA = HDIO_GET_DMA;
378a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GET_IDENTITY = HDIO_GET_IDENTITY;
379a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GET_KEEPSETTINGS = HDIO_GET_KEEPSETTINGS;
380a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GET_MULTCOUNT = HDIO_GET_MULTCOUNT;
381a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GET_NOWERR = HDIO_GET_NOWERR;
382a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_GET_UNMASKINTR = HDIO_GET_UNMASKINTR;
383a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_SET_32BIT = HDIO_SET_32BIT;
384a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_SET_DMA = HDIO_SET_DMA;
385a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_SET_KEEPSETTINGS = HDIO_SET_KEEPSETTINGS;
386a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_SET_MULTCOUNT = HDIO_SET_MULTCOUNT;
387a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_SET_NOWERR = HDIO_SET_NOWERR;
388a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_HDIO_SET_UNMASKINTR = HDIO_SET_UNMASKINTR;
389a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_MTIOCGET = MTIOCGET;
390a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_MTIOCPOS = MTIOCPOS;
391a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_MTIOCTOP = MTIOCTOP;
392a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCGASYNCMAP = PPPIOCGASYNCMAP;
393a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCGDEBUG = PPPIOCGDEBUG;
394a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCGFLAGS = PPPIOCGFLAGS;
395a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCGUNIT = PPPIOCGUNIT;
396a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCGXASYNCMAP = PPPIOCGXASYNCMAP;
397a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCSASYNCMAP = PPPIOCSASYNCMAP;
398a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCSDEBUG = PPPIOCSDEBUG;
399a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCSFLAGS = PPPIOCSFLAGS;
400a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCSMAXCID = PPPIOCSMAXCID;
401a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCSMRU = PPPIOCSMRU;
402a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PPPIOCSXASYNCMAP = PPPIOCSXASYNCMAP;
403a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCADDRT = SIOCADDRT;
404a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCDARP = SIOCDARP;
405a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCDELRT = SIOCDELRT;
406a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCDRARP = SIOCDRARP;
407a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGARP = SIOCGARP;
408a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFENCAP = SIOCGIFENCAP;
409a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFHWADDR = SIOCGIFHWADDR;
410a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFMAP = SIOCGIFMAP;
411a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFMEM = SIOCGIFMEM;
412a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFNAME = SIOCGIFNAME;
413a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGIFSLAVE = SIOCGIFSLAVE;
414a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGRARP = SIOCGRARP;
415a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCGSTAMP = SIOCGSTAMP;
4167b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org  unsigned IOCTL_SIOCSARP = SIOCSARP;
417a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFENCAP = SIOCSIFENCAP;
418a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFHWADDR = SIOCSIFHWADDR;
419a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSIFLINK = SIOCSIFLINK;
420a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_SIOCSIFMAP = SIOCSIFMAP;
421a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_SIOCSIFMEM = SIOCSIFMEM;
422a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_SIOCSIFSLAVE = SIOCSIFSLAVE;
423a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCSRARP = SIOCSRARP;
424a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SOUND_VERSION >= 0x040000
425a9aa5fa8ae2a2b43a94e6462ded2cd51445e9ee3ager@chromium.org  unsigned IOCTL_SNDCTL_COPR_HALT = IOCTL_NOT_PRESENT;
426a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_COPR_LOAD = IOCTL_NOT_PRESENT;
427a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_COPR_RCODE = IOCTL_NOT_PRESENT;
428a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_COPR_RCVMSG = IOCTL_NOT_PRESENT;
4293847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RDATA = IOCTL_NOT_PRESENT;
4303847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RESET = IOCTL_NOT_PRESENT;
4313847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RUN = IOCTL_NOT_PRESENT;
4323847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_SENDMSG = IOCTL_NOT_PRESENT;
4333847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_WCODE = IOCTL_NOT_PRESENT;
4343847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_WDATA = IOCTL_NOT_PRESENT;
4353847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_BITS = IOCTL_NOT_PRESENT;
4363847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_CHANNELS = IOCTL_NOT_PRESENT;
4373847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_FILTER = IOCTL_NOT_PRESENT;
4383847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_RATE = IOCTL_NOT_PRESENT;
4393847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_WRITE_CHANNELS = IOCTL_NOT_PRESENT;
4403847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_WRITE_FILTER = IOCTL_NOT_PRESENT;
4413847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com#else
4423847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_HALT = SNDCTL_COPR_HALT;
4433847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_LOAD = SNDCTL_COPR_LOAD;
4443847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RCODE = SNDCTL_COPR_RCODE;
4453847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RCVMSG = SNDCTL_COPR_RCVMSG;
4463847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RDATA = SNDCTL_COPR_RDATA;
4473847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RESET = SNDCTL_COPR_RESET;
4483847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_RUN = SNDCTL_COPR_RUN;
4493847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_SENDMSG = SNDCTL_COPR_SENDMSG;
4503847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_WCODE = SNDCTL_COPR_WCODE;
4513847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_COPR_WDATA = SNDCTL_COPR_WDATA;
4523847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_BITS = SOUND_PCM_READ_BITS;
4533847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_CHANNELS = SOUND_PCM_READ_CHANNELS;
4543847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_FILTER = SOUND_PCM_READ_FILTER;
4553847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_READ_RATE = SOUND_PCM_READ_RATE;
4563847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_WRITE_CHANNELS = SOUND_PCM_WRITE_CHANNELS;
4573847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SOUND_PCM_WRITE_FILTER = SOUND_PCM_WRITE_FILTER;
4583847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com#endif
4593847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_GETBLKSIZE = SNDCTL_DSP_GETBLKSIZE;
4603847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_GETFMTS = SNDCTL_DSP_GETFMTS;
4613847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_NONBLOCK = SNDCTL_DSP_NONBLOCK;
4623847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_POST = SNDCTL_DSP_POST;
4633847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_RESET = SNDCTL_DSP_RESET;
4643847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_SETFMT = SNDCTL_DSP_SETFMT;
4653847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_SETFRAGMENT = SNDCTL_DSP_SETFRAGMENT;
4663847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_SPEED = SNDCTL_DSP_SPEED;
4673847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_STEREO = SNDCTL_DSP_STEREO;
4683847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_SUBDIVIDE = SNDCTL_DSP_SUBDIVIDE;
4693847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_DSP_SYNC = SNDCTL_DSP_SYNC;
4703847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_FM_4OP_ENABLE = SNDCTL_FM_4OP_ENABLE;
4713847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_FM_LOAD_INSTR = SNDCTL_FM_LOAD_INSTR;
4723847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_MIDI_INFO = SNDCTL_MIDI_INFO;
4733847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_MIDI_PRETIME = SNDCTL_MIDI_PRETIME;
4743847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_CTRLRATE = SNDCTL_SEQ_CTRLRATE;
4753847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_GETINCOUNT = SNDCTL_SEQ_GETINCOUNT;
4763847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_GETOUTCOUNT = SNDCTL_SEQ_GETOUTCOUNT;
4773847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_NRMIDIS = SNDCTL_SEQ_NRMIDIS;
4783847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_NRSYNTHS = SNDCTL_SEQ_NRSYNTHS;
4793847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_OUTOFBAND = SNDCTL_SEQ_OUTOFBAND;
4803847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_PANIC = SNDCTL_SEQ_PANIC;
4813847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_PERCMODE = SNDCTL_SEQ_PERCMODE;
4823847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_RESET = SNDCTL_SEQ_RESET;
4833847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_RESETSAMPLES = SNDCTL_SEQ_RESETSAMPLES;
4843847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_SNDCTL_SEQ_SYNC = SNDCTL_SEQ_SYNC;
485a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_SEQ_TESTMIDI = SNDCTL_SEQ_TESTMIDI;
486a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_SEQ_THRESHOLD = SNDCTL_SEQ_THRESHOLD;
487a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_SYNTH_INFO = SNDCTL_SYNTH_INFO;
488a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_SYNTH_MEMAVL = SNDCTL_SYNTH_MEMAVL;
489a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_CONTINUE = SNDCTL_TMR_CONTINUE;
490a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_METRONOME = SNDCTL_TMR_METRONOME;
491a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_SELECT = SNDCTL_TMR_SELECT;
492a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_SOURCE = SNDCTL_TMR_SOURCE;
493a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_START = SNDCTL_TMR_START;
494a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_STOP = SNDCTL_TMR_STOP;
495a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_TEMPO = SNDCTL_TMR_TEMPO;
496a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SNDCTL_TMR_TIMEBASE = SNDCTL_TMR_TIMEBASE;
497a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_ALTPCM = SOUND_MIXER_READ_ALTPCM;
4987b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_BASS = SOUND_MIXER_READ_BASS;
4997b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_CAPS = SOUND_MIXER_READ_CAPS;
5007b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_CD = SOUND_MIXER_READ_CD;
5017b26015ac58e54e88f4214e248f772ad4f055477whesse@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_DEVMASK = SOUND_MIXER_READ_DEVMASK;
502a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_ENHANCE = SOUND_MIXER_READ_ENHANCE;
503a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_IGAIN = SOUND_MIXER_READ_IGAIN;
504a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_IMIX = SOUND_MIXER_READ_IMIX;
505a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_LINE = SOUND_MIXER_READ_LINE;
5066d786c9805481bd13ecb29c3155540f2f32950e1svenpanne@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_LINE1 = SOUND_MIXER_READ_LINE1;
507a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_LINE2 = SOUND_MIXER_READ_LINE2;
508a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_LINE3 = SOUND_MIXER_READ_LINE3;
509a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_LOUD = SOUND_MIXER_READ_LOUD;
510a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_MIC = SOUND_MIXER_READ_MIC;
511a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_MUTE = SOUND_MIXER_READ_MUTE;
512a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_OGAIN = SOUND_MIXER_READ_OGAIN;
513a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_PCM = SOUND_MIXER_READ_PCM;
514a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_RECLEV = SOUND_MIXER_READ_RECLEV;
515a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_RECMASK = SOUND_MIXER_READ_RECMASK;
516a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_RECSRC = SOUND_MIXER_READ_RECSRC;
517a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_SPEAKER = SOUND_MIXER_READ_SPEAKER;
518a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_STEREODEVS = SOUND_MIXER_READ_STEREODEVS;
519a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_SYNTH = SOUND_MIXER_READ_SYNTH;
520a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_TREBLE = SOUND_MIXER_READ_TREBLE;
521a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_READ_VOLUME = SOUND_MIXER_READ_VOLUME;
522a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_ALTPCM = SOUND_MIXER_WRITE_ALTPCM;
523a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_BASS = SOUND_MIXER_WRITE_BASS;
524a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_CD = SOUND_MIXER_WRITE_CD;
525a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_ENHANCE = SOUND_MIXER_WRITE_ENHANCE;
526a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_IGAIN = SOUND_MIXER_WRITE_IGAIN;
527a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_IMIX = SOUND_MIXER_WRITE_IMIX;
528a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_LINE = SOUND_MIXER_WRITE_LINE;
529a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_LINE1 = SOUND_MIXER_WRITE_LINE1;
530a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_LINE2 = SOUND_MIXER_WRITE_LINE2;
531a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_LINE3 = SOUND_MIXER_WRITE_LINE3;
532a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_LOUD = SOUND_MIXER_WRITE_LOUD;
533a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_MIC = SOUND_MIXER_WRITE_MIC;
534a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_MUTE = SOUND_MIXER_WRITE_MUTE;
535a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_OGAIN = SOUND_MIXER_WRITE_OGAIN;
536a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_PCM = SOUND_MIXER_WRITE_PCM;
537dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_RECLEV = SOUND_MIXER_WRITE_RECLEV;
538dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_RECSRC = SOUND_MIXER_WRITE_RECSRC;
539dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_SPEAKER = SOUND_MIXER_WRITE_SPEAKER;
540dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_SYNTH = SOUND_MIXER_WRITE_SYNTH;
541a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_TREBLE = SOUND_MIXER_WRITE_TREBLE;
542dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_SOUND_MIXER_WRITE_VOLUME = SOUND_MIXER_WRITE_VOLUME;
543dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCFLSH = TCFLSH;
544dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCGETA = TCGETA;
545dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCGETS = TCGETS;
546dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSBRK = TCSBRK;
547dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSBRKP = TCSBRKP;
548dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSETA = TCSETA;
549dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSETAF = TCSETAF;
550dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSETAW = TCSETAW;
551dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSETS = TCSETS;
552dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSETSF = TCSETSF;
553dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCSETSW = TCSETSW;
554dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TCXONC = TCXONC;
555dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_TIOCGLCKTRMIOS = TIOCGLCKTRMIOS;
556a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCGSOFTCAR = TIOCGSOFTCAR;
557a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCINQ = TIOCINQ;
558a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCLINUX = TIOCLINUX;
559a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSERCONFIG = TIOCSERCONFIG;
5603847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_TIOCSERGETLSR = TIOCSERGETLSR;
561a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSERGWILD = TIOCSERGWILD;
562a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSERSWILD = TIOCSERSWILD;
563a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSLCKTRMIOS = TIOCSLCKTRMIOS;
564a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSSOFTCAR = TIOCSSOFTCAR;
565a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_ACTIVATE = VT_ACTIVATE;
566a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_DISALLOCATE = VT_DISALLOCATE;
567a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_GETMODE = VT_GETMODE;
568a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_GETSTATE = VT_GETSTATE;
569a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_OPENQRY = VT_OPENQRY;
570a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_RELDISP = VT_RELDISP;
5713847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_VT_RESIZE = VT_RESIZE;
572a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_RESIZEX = VT_RESIZEX;
5734d3fe4e246b0312eba361689f288ddf8dd516960danno@chromium.org  unsigned IOCTL_VT_SENDSIG = VT_SENDSIG;
574a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_SETMODE = VT_SETMODE;
575a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_VT_WAITACTIVE = VT_WAITACTIVE;
576a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
577a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if SANITIZER_LINUX && !SANITIZER_ANDROID
578a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
579a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
580a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CYGETMON = CYGETMON;
581a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
5827304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org  unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
583a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
584fb144a0716afe7ab8bf245f2391a9e53b3db3c89fschneider@chromium.org  unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
585fb144a0716afe7ab8bf245f2391a9e53b3db3c89fschneider@chromium.org  unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
586a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
587ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
588ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
589ddd545c4c343dcf4331b9d80d2a0bdfa373a4a0fricow@chromium.org  unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
590a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EQL_GETSLAVECFG = EQL_GETSLAVECFG;
591a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EQL_SETMASTRCFG = EQL_SETMASTRCFG;
592a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EQL_SETSLAVECFG = EQL_SETSLAVECFG;
593a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if EV_VERSION > (0x010000)
594a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGKEYCODE_V2 = EVIOCGKEYCODE_V2;
595a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGPROP = EVIOCGPROP(0);
596a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCSKEYCODE_V2 = EVIOCSKEYCODE_V2;
597a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#else
598a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_EVIOCGKEYCODE_V2 = IOCTL_NOT_PRESENT;
59984bcc559ac20fb04f806e97d28a314b20b58fd60svenpanne@chromium.org  unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
60084bcc559ac20fb04f806e97d28a314b20b58fd60svenpanne@chromium.org  unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
60184bcc559ac20fb04f806e97d28a314b20b58fd60svenpanne@chromium.org#endif
602a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS;
603a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION;
604a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS;
605a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION;
606a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_GIO_CMAP = GIO_CMAP;
607a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_GIO_FONT = GIO_FONT;
608a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_GIO_SCRNMAP = GIO_SCRNMAP;
609a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;
6103a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_GIO_UNISCRNMAP = GIO_UNISCRNMAP;
6113a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_KDADDIO = KDADDIO;
612a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDDELIO = KDDELIO;
613a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDDISABIO = KDDISABIO;
6143847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_KDENABIO = KDENABIO;
6156d786c9805481bd13ecb29c3155540f2f32950e1svenpanne@chromium.org  unsigned IOCTL_KDGETKEYCODE = KDGETKEYCODE;
6163847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_KDGETLED = KDGETLED;
6173847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_KDGETMODE = KDGETMODE;
6183847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_KDGKBDIACR = KDGKBDIACR;
6193847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_KDGKBENT = KDGKBENT;
6203847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com  unsigned IOCTL_KDGKBLED = KDGKBLED;
621a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDGKBMETA = KDGKBMETA;
622a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDGKBMODE = KDGKBMODE;
623a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDGKBSENT = KDGKBSENT;
624378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_KDGKBTYPE = KDGKBTYPE;
625378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_KDMAPDISP = KDMAPDISP;
626378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_KDMKTONE = KDMKTONE;
627378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_KDSETKEYCODE = KDSETKEYCODE;
628378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_KDSETLED = KDSETLED;
629378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_KDSETMODE = KDSETMODE;
630378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_KDSIGACCEPT = KDSIGACCEPT;
631a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDSKBDIACR = KDSKBDIACR;
632a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDSKBENT = KDSKBENT;
633a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDSKBLED = KDSKBLED;
634a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDSKBMETA = KDSKBMETA;
635a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDSKBMODE = KDSKBMODE;
636a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDSKBSENT = KDSKBSENT;
637a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KDUNMAPDISP = KDUNMAPDISP;
638a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_KIOCSOUND = KIOCSOUND;
6393a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_LPABORT = LPABORT;
6403a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_LPABORTOPEN = LPABORTOPEN;
6413a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_LPCAREFUL = LPCAREFUL;
642a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_LPCHAR = LPCHAR;
643a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_LPGETIRQ = LPGETIRQ;
644a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_LPGETSTATUS = LPGETSTATUS;
645a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_LPRESET = LPRESET;
646a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_LPSETIRQ = LPSETIRQ;
647a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_LPTIME = LPTIME;
648a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_LPWAIT = LPWAIT;
649a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_MTIOCGETCONFIG = MTIOCGETCONFIG;
650a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_MTIOCSETCONFIG = MTIOCSETCONFIG;
6513a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_PIO_CMAP = PIO_CMAP;
6523a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_PIO_FONT = PIO_FONT;
653a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PIO_SCRNMAP = PIO_SCRNMAP;
654a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PIO_UNIMAP = PIO_UNIMAP;
6553a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_PIO_UNIMAPCLR = PIO_UNIMAPCLR;
656a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_PIO_UNISCRNMAP = PIO_UNISCRNMAP;
65783a4728861129dc263ded92157f3e6389f851f19karlklose@chromium.org  unsigned IOCTL_SCSI_IOCTL_GET_IDLUN = SCSI_IOCTL_GET_IDLUN;
65883a4728861129dc263ded92157f3e6389f851f19karlklose@chromium.org  unsigned IOCTL_SCSI_IOCTL_PROBE_HOST = SCSI_IOCTL_PROBE_HOST;
65983a4728861129dc263ded92157f3e6389f851f19karlklose@chromium.org  unsigned IOCTL_SCSI_IOCTL_TAGGED_DISABLE = SCSI_IOCTL_TAGGED_DISABLE;
660a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SCSI_IOCTL_TAGGED_ENABLE = SCSI_IOCTL_TAGGED_ENABLE;
661dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.org  unsigned IOCTL_SIOCAIPXITFCRT = SIOCAIPXITFCRT;
662a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCAIPXPRISLT = SIOCAIPXPRISLT;
663a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCAX25ADDUID = SIOCAX25ADDUID;
664a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCAX25DELUID = SIOCAX25DELUID;
665a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCAX25GETPARMS = SIOCAX25GETPARMS;
666a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCAX25GETUID = SIOCAX25GETUID;
6673a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_SIOCAX25NOUID = SIOCAX25NOUID;
668a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCAX25SETPARMS = SIOCAX25SETPARMS;
669a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCDEVPLIP = SIOCDEVPLIP;
670378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_SIOCIPXCFGDATA = SIOCIPXCFGDATA;
671a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCNRDECOBS = SIOCNRDECOBS;
672a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCNRGETPARMS = SIOCNRGETPARMS;
673a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_SIOCNRRTCTL = SIOCNRRTCTL;
674378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_SIOCNRSETPARMS = SIOCNRSETPARMS;
675378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_SNDCTL_DSP_GETISPACE = SNDCTL_DSP_GETISPACE;
6763a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org  unsigned IOCTL_SNDCTL_DSP_GETOSPACE = SNDCTL_DSP_GETOSPACE;
677378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_TIOCGSERIAL = TIOCGSERIAL;
678378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_TIOCSERGETMULTI = TIOCSERGETMULTI;
679378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org  unsigned IOCTL_TIOCSERSETMULTI = TIOCSERSETMULTI;
680a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  unsigned IOCTL_TIOCSSERIAL = TIOCSSERIAL;
681a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
682a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org}  // namespace __sanitizer
6833a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.org
684a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#define CHECK_TYPE_SIZE(TYPE) \
685a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  COMPILER_CHECK(sizeof(__sanitizer_##TYPE) == sizeof(TYPE))
686a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
687a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#define CHECK_SIZE_AND_OFFSET(CLASS, MEMBER)                       \
688a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  COMPILER_CHECK(sizeof(((__sanitizer_##CLASS *) NULL)->MEMBER) == \
689a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org                 sizeof(((CLASS *) NULL)->MEMBER));                \
690a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org  COMPILER_CHECK(offsetof(__sanitizer_##CLASS, MEMBER) ==          \
691a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org                 offsetof(CLASS, MEMBER))
692a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
693a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCOMPILER_CHECK(sizeof(__sanitizer_pthread_attr_t) >= sizeof(pthread_attr_t));
694a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCOMPILER_CHECK(sizeof(__sanitizer::struct_sigaction_max_sz) >=
695a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org                   sizeof(__sanitizer::struct_sigaction_sz));
696378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org
697378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.orgCOMPILER_CHECK(sizeof(socklen_t) == sizeof(unsigned));
698378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org
699378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org#if SANITIZER_LINUX
700378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.org// There are more undocumented fields in dl_phdr_info that we are not interested
7013847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com// in.
7023847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.comCOMPILER_CHECK(sizeof(__sanitizer_dl_phdr_info) <= sizeof(dl_phdr_info));
7033847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.comCHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_addr);
7043847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.comCHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_name);
705a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phdr);
706a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phnum);
707a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
708a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCOMPILER_CHECK(IOC_SIZE(0x12345678) == _IOC_SIZE(0x12345678));
709a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif
710a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
711a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_TYPE_SIZE(addrinfo);
712a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(addrinfo, ai_flags);
713a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(addrinfo, ai_family);
714a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(addrinfo, ai_socktype);
7153847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.comCHECK_SIZE_AND_OFFSET(addrinfo, ai_protocol);
716a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(addrinfo, ai_protocol);
717a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(addrinfo, ai_addrlen);
718a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(addrinfo, ai_canonname);
719a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(addrinfo, ai_addr);
720a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
721a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_TYPE_SIZE(hostent);
722a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(hostent, h_name);
723a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(hostent, h_aliases);
724a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(hostent, h_addrtype);
725a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(hostent, h_length);
726a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(hostent, h_addr_list);
727a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
7283a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.orgCHECK_TYPE_SIZE(iovec);
7293a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.orgCHECK_SIZE_AND_OFFSET(iovec, iov_base);
730a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(iovec, iov_len);
731a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
732a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_TYPE_SIZE(msghdr);
733a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(msghdr, msg_name);
734a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(msghdr, msg_namelen);
735a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(msghdr, msg_iov);
736a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(msghdr, msg_iovlen);
737a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(msghdr, msg_control);
738a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(msghdr, msg_controllen);
739a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(msghdr, msg_flags);
740a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
741a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_TYPE_SIZE(cmsghdr);
742a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_len);
743378b34e3f8852e94739bb77a528278fe0e2bb532ager@chromium.orgCHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_level);
744a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgCHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_type);
745a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
7463a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.orgCHECK_TYPE_SIZE(ifconf);
7473a5fd78f0ca6c2827bb05f69a373d152a9ce6ff3fschneider@chromium.orgCHECK_SIZE_AND_OFFSET(ifconf, ifc_len);
748dcebac0f4c6c0da579b7cc91a0cbba8f3c820c8dricow@chromium.orgCHECK_SIZE_AND_OFFSET(ifconf, ifc_ifcu);
749a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
750a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif  // SANITIZER_LINUX || SANITIZER_MAC
751a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org
752a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org