Mercurial > hg > CbC > CbC_gcc
comparison libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.cpp @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 //===-- sanitizer_platform_limits_freebsd.cpp -----------------------------===// | |
2 // | |
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
4 // See https://llvm.org/LICENSE.txt for license information. | |
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
6 // | |
7 //===----------------------------------------------------------------------===// | |
8 // | |
9 // This file is a part of Sanitizer common code. | |
10 // | |
11 // Sizes and layouts of platform-specific FreeBSD data structures. | |
12 //===----------------------------------------------------------------------===// | |
13 | |
14 #include "sanitizer_platform.h" | |
15 | |
16 #if SANITIZER_FREEBSD | |
17 | |
18 #include <arpa/inet.h> | |
19 #include <dirent.h> | |
20 #include <fts.h> | |
21 #include <fstab.h> | |
22 #include <grp.h> | |
23 #include <limits.h> | |
24 #include <net/if.h> | |
25 #include <netdb.h> | |
26 #include <poll.h> | |
27 #include <pthread.h> | |
28 #include <pwd.h> | |
29 #include <regex.h> | |
30 #include <signal.h> | |
31 #include <stddef.h> | |
32 #include <sys/mman.h> | |
33 #include <sys/capsicum.h> | |
34 #include <sys/resource.h> | |
35 #include <sys/stat.h> | |
36 #include <sys/time.h> | |
37 #include <sys/times.h> | |
38 #include <sys/types.h> | |
39 #include <sys/utsname.h> | |
40 #include <termios.h> | |
41 #include <time.h> | |
42 | |
43 #include <net/route.h> | |
44 #include <sys/mount.h> | |
45 #include <sys/sockio.h> | |
46 #include <sys/socket.h> | |
47 #include <sys/filio.h> | |
48 #include <sys/signal.h> | |
49 #include <sys/timespec.h> | |
50 #include <sys/timeb.h> | |
51 #include <sys/mqueue.h> | |
52 #include <sys/msg.h> | |
53 #include <sys/ipc.h> | |
54 #include <sys/msg.h> | |
55 #include <sys/statvfs.h> | |
56 #include <sys/soundcard.h> | |
57 #include <sys/mtio.h> | |
58 #include <sys/consio.h> | |
59 #include <sys/kbio.h> | |
60 #include <sys/link_elf.h> | |
61 #include <netinet/ip_mroute.h> | |
62 #include <netinet/in.h> | |
63 #include <net/ethernet.h> | |
64 #include <net/ppp_defs.h> | |
65 #include <glob.h> | |
66 #include <stdio.h> | |
67 #include <stringlist.h> | |
68 #include <term.h> | |
69 #include <utmpx.h> | |
70 #include <wchar.h> | |
71 #include <vis.h> | |
72 | |
73 #define _KERNEL // to declare 'shminfo' structure | |
74 # include <sys/shm.h> | |
75 #undef _KERNEL | |
76 | |
77 #undef INLINE // to avoid clashes with sanitizers' definitions | |
78 | |
79 #undef IOC_DIRMASK | |
80 | |
81 # include <utime.h> | |
82 # include <sys/ptrace.h> | |
83 # include <semaphore.h> | |
84 | |
85 #include <ifaddrs.h> | |
86 #include <sys/ucontext.h> | |
87 #include <wordexp.h> | |
88 | |
89 // Include these after system headers to avoid name clashes and ambiguities. | |
90 #include "sanitizer_internal_defs.h" | |
91 #include "sanitizer_platform_limits_freebsd.h" | |
92 | |
93 namespace __sanitizer { | |
94 unsigned struct_cap_rights_sz = sizeof(cap_rights_t); | |
95 unsigned struct_utsname_sz = sizeof(struct utsname); | |
96 unsigned struct_stat_sz = sizeof(struct stat); | |
97 unsigned struct_rusage_sz = sizeof(struct rusage); | |
98 unsigned struct_tm_sz = sizeof(struct tm); | |
99 unsigned struct_passwd_sz = sizeof(struct passwd); | |
100 unsigned struct_group_sz = sizeof(struct group); | |
101 unsigned siginfo_t_sz = sizeof(siginfo_t); | |
102 unsigned struct_sigaction_sz = sizeof(struct sigaction); | |
103 unsigned struct_itimerval_sz = sizeof(struct itimerval); | |
104 unsigned pthread_t_sz = sizeof(pthread_t); | |
105 unsigned pthread_mutex_t_sz = sizeof(pthread_mutex_t); | |
106 unsigned pthread_cond_t_sz = sizeof(pthread_cond_t); | |
107 unsigned pid_t_sz = sizeof(pid_t); | |
108 unsigned timeval_sz = sizeof(timeval); | |
109 unsigned uid_t_sz = sizeof(uid_t); | |
110 unsigned gid_t_sz = sizeof(gid_t); | |
111 unsigned fpos_t_sz = sizeof(fpos_t); | |
112 unsigned mbstate_t_sz = sizeof(mbstate_t); | |
113 unsigned sigset_t_sz = sizeof(sigset_t); | |
114 unsigned struct_timezone_sz = sizeof(struct timezone); | |
115 unsigned struct_tms_sz = sizeof(struct tms); | |
116 unsigned struct_sigevent_sz = sizeof(struct sigevent); | |
117 unsigned struct_sched_param_sz = sizeof(struct sched_param); | |
118 unsigned struct_statfs_sz = sizeof(struct statfs); | |
119 unsigned struct_sockaddr_sz = sizeof(struct sockaddr); | |
120 unsigned ucontext_t_sz = sizeof(ucontext_t); | |
121 unsigned struct_rlimit_sz = sizeof(struct rlimit); | |
122 unsigned struct_timespec_sz = sizeof(struct timespec); | |
123 unsigned struct_utimbuf_sz = sizeof(struct utimbuf); | |
124 unsigned struct_itimerspec_sz = sizeof(struct itimerspec); | |
125 unsigned struct_timeb_sz = sizeof(struct timeb); | |
126 unsigned struct_msqid_ds_sz = sizeof(struct msqid_ds); | |
127 unsigned struct_mq_attr_sz = sizeof(struct mq_attr); | |
128 unsigned struct_statvfs_sz = sizeof(struct statvfs); | |
129 unsigned struct_shminfo_sz = sizeof(struct shminfo); | |
130 unsigned struct_shm_info_sz = sizeof(struct shm_info); | |
131 unsigned struct_regmatch_sz = sizeof(regmatch_t); | |
132 unsigned struct_regex_sz = sizeof(regex_t); | |
133 unsigned struct_fstab_sz = sizeof(struct fstab); | |
134 unsigned struct_FTS_sz = sizeof(FTS); | |
135 unsigned struct_FTSENT_sz = sizeof(FTSENT); | |
136 unsigned struct_StringList_sz = sizeof(StringList); | |
137 | |
138 const uptr sig_ign = (uptr)SIG_IGN; | |
139 const uptr sig_dfl = (uptr)SIG_DFL; | |
140 const uptr sig_err = (uptr)SIG_ERR; | |
141 const uptr sa_siginfo = (uptr)SA_SIGINFO; | |
142 | |
143 int shmctl_ipc_stat = (int)IPC_STAT; | |
144 int shmctl_ipc_info = (int)IPC_INFO; | |
145 int shmctl_shm_info = (int)SHM_INFO; | |
146 int shmctl_shm_stat = (int)SHM_STAT; | |
147 unsigned struct_utmpx_sz = sizeof(struct utmpx); | |
148 | |
149 int map_fixed = MAP_FIXED; | |
150 | |
151 int af_inet = (int)AF_INET; | |
152 int af_inet6 = (int)AF_INET6; | |
153 | |
154 uptr __sanitizer_in_addr_sz(int af) { | |
155 if (af == AF_INET) | |
156 return sizeof(struct in_addr); | |
157 else if (af == AF_INET6) | |
158 return sizeof(struct in6_addr); | |
159 else | |
160 return 0; | |
161 } | |
162 | |
163 unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); | |
164 int glob_nomatch = GLOB_NOMATCH; | |
165 int glob_altdirfunc = GLOB_ALTDIRFUNC; | |
166 | |
167 unsigned path_max = PATH_MAX; | |
168 | |
169 // ioctl arguments | |
170 unsigned struct_ifreq_sz = sizeof(struct ifreq); | |
171 unsigned struct_termios_sz = sizeof(struct termios); | |
172 unsigned struct_winsize_sz = sizeof(struct winsize); | |
173 #if SOUND_VERSION >= 0x040000 | |
174 unsigned struct_copr_buffer_sz = 0; | |
175 unsigned struct_copr_debug_buf_sz = 0; | |
176 unsigned struct_copr_msg_sz = 0; | |
177 #else | |
178 unsigned struct_copr_buffer_sz = sizeof(struct copr_buffer); | |
179 unsigned struct_copr_debug_buf_sz = sizeof(struct copr_debug_buf); | |
180 unsigned struct_copr_msg_sz = sizeof(struct copr_msg); | |
181 #endif | |
182 unsigned struct_midi_info_sz = sizeof(struct midi_info); | |
183 unsigned struct_mtget_sz = sizeof(struct mtget); | |
184 unsigned struct_mtop_sz = sizeof(struct mtop); | |
185 unsigned struct_sbi_instrument_sz = sizeof(struct sbi_instrument); | |
186 unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec); | |
187 unsigned struct_synth_info_sz = sizeof(struct synth_info); | |
188 unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info); | |
189 unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats); | |
190 unsigned struct_sioc_sg_req_sz = sizeof(struct sioc_sg_req); | |
191 unsigned struct_sioc_vif_req_sz = sizeof(struct sioc_vif_req); | |
192 const unsigned long __sanitizer_bufsiz = BUFSIZ; | |
193 | |
194 const unsigned IOCTL_NOT_PRESENT = 0; | |
195 | |
196 unsigned IOCTL_FIOASYNC = FIOASYNC; | |
197 unsigned IOCTL_FIOCLEX = FIOCLEX; | |
198 unsigned IOCTL_FIOGETOWN = FIOGETOWN; | |
199 unsigned IOCTL_FIONBIO = FIONBIO; | |
200 unsigned IOCTL_FIONCLEX = FIONCLEX; | |
201 unsigned IOCTL_FIOSETOWN = FIOSETOWN; | |
202 unsigned IOCTL_SIOCADDMULTI = SIOCADDMULTI; | |
203 unsigned IOCTL_SIOCATMARK = SIOCATMARK; | |
204 unsigned IOCTL_SIOCDELMULTI = SIOCDELMULTI; | |
205 unsigned IOCTL_SIOCGIFADDR = SIOCGIFADDR; | |
206 unsigned IOCTL_SIOCGIFBRDADDR = SIOCGIFBRDADDR; | |
207 unsigned IOCTL_SIOCGIFCONF = SIOCGIFCONF; | |
208 unsigned IOCTL_SIOCGIFDSTADDR = SIOCGIFDSTADDR; | |
209 unsigned IOCTL_SIOCGIFFLAGS = SIOCGIFFLAGS; | |
210 unsigned IOCTL_SIOCGIFMETRIC = SIOCGIFMETRIC; | |
211 unsigned IOCTL_SIOCGIFMTU = SIOCGIFMTU; | |
212 unsigned IOCTL_SIOCGIFNETMASK = SIOCGIFNETMASK; | |
213 unsigned IOCTL_SIOCGPGRP = SIOCGPGRP; | |
214 unsigned IOCTL_SIOCSIFADDR = SIOCSIFADDR; | |
215 unsigned IOCTL_SIOCSIFBRDADDR = SIOCSIFBRDADDR; | |
216 unsigned IOCTL_SIOCSIFDSTADDR = SIOCSIFDSTADDR; | |
217 unsigned IOCTL_SIOCSIFFLAGS = SIOCSIFFLAGS; | |
218 unsigned IOCTL_SIOCSIFMETRIC = SIOCSIFMETRIC; | |
219 unsigned IOCTL_SIOCSIFMTU = SIOCSIFMTU; | |
220 unsigned IOCTL_SIOCSIFNETMASK = SIOCSIFNETMASK; | |
221 unsigned IOCTL_SIOCSPGRP = SIOCSPGRP; | |
222 unsigned IOCTL_TIOCCONS = TIOCCONS; | |
223 unsigned IOCTL_TIOCEXCL = TIOCEXCL; | |
224 unsigned IOCTL_TIOCGETD = TIOCGETD; | |
225 unsigned IOCTL_TIOCGPGRP = TIOCGPGRP; | |
226 unsigned IOCTL_TIOCGWINSZ = TIOCGWINSZ; | |
227 unsigned IOCTL_TIOCMBIC = TIOCMBIC; | |
228 unsigned IOCTL_TIOCMBIS = TIOCMBIS; | |
229 unsigned IOCTL_TIOCMGET = TIOCMGET; | |
230 unsigned IOCTL_TIOCMSET = TIOCMSET; | |
231 unsigned IOCTL_TIOCNOTTY = TIOCNOTTY; | |
232 unsigned IOCTL_TIOCNXCL = TIOCNXCL; | |
233 unsigned IOCTL_TIOCOUTQ = TIOCOUTQ; | |
234 unsigned IOCTL_TIOCPKT = TIOCPKT; | |
235 unsigned IOCTL_TIOCSCTTY = TIOCSCTTY; | |
236 unsigned IOCTL_TIOCSETD = TIOCSETD; | |
237 unsigned IOCTL_TIOCSPGRP = TIOCSPGRP; | |
238 unsigned IOCTL_TIOCSTI = TIOCSTI; | |
239 unsigned IOCTL_TIOCSWINSZ = TIOCSWINSZ; | |
240 unsigned IOCTL_SIOCGETSGCNT = SIOCGETSGCNT; | |
241 unsigned IOCTL_SIOCGETVIFCNT = SIOCGETVIFCNT; | |
242 unsigned IOCTL_MTIOCGET = MTIOCGET; | |
243 unsigned IOCTL_MTIOCTOP = MTIOCTOP; | |
244 unsigned IOCTL_SNDCTL_DSP_GETBLKSIZE = SNDCTL_DSP_GETBLKSIZE; | |
245 unsigned IOCTL_SNDCTL_DSP_GETFMTS = SNDCTL_DSP_GETFMTS; | |
246 unsigned IOCTL_SNDCTL_DSP_NONBLOCK = SNDCTL_DSP_NONBLOCK; | |
247 unsigned IOCTL_SNDCTL_DSP_POST = SNDCTL_DSP_POST; | |
248 unsigned IOCTL_SNDCTL_DSP_RESET = SNDCTL_DSP_RESET; | |
249 unsigned IOCTL_SNDCTL_DSP_SETFMT = SNDCTL_DSP_SETFMT; | |
250 unsigned IOCTL_SNDCTL_DSP_SETFRAGMENT = SNDCTL_DSP_SETFRAGMENT; | |
251 unsigned IOCTL_SNDCTL_DSP_SPEED = SNDCTL_DSP_SPEED; | |
252 unsigned IOCTL_SNDCTL_DSP_STEREO = SNDCTL_DSP_STEREO; | |
253 unsigned IOCTL_SNDCTL_DSP_SUBDIVIDE = SNDCTL_DSP_SUBDIVIDE; | |
254 unsigned IOCTL_SNDCTL_DSP_SYNC = SNDCTL_DSP_SYNC; | |
255 unsigned IOCTL_SNDCTL_FM_4OP_ENABLE = SNDCTL_FM_4OP_ENABLE; | |
256 unsigned IOCTL_SNDCTL_FM_LOAD_INSTR = SNDCTL_FM_LOAD_INSTR; | |
257 unsigned IOCTL_SNDCTL_MIDI_INFO = SNDCTL_MIDI_INFO; | |
258 unsigned IOCTL_SNDCTL_MIDI_PRETIME = SNDCTL_MIDI_PRETIME; | |
259 unsigned IOCTL_SNDCTL_SEQ_CTRLRATE = SNDCTL_SEQ_CTRLRATE; | |
260 unsigned IOCTL_SNDCTL_SEQ_GETINCOUNT = SNDCTL_SEQ_GETINCOUNT; | |
261 unsigned IOCTL_SNDCTL_SEQ_GETOUTCOUNT = SNDCTL_SEQ_GETOUTCOUNT; | |
262 unsigned IOCTL_SNDCTL_SEQ_NRMIDIS = SNDCTL_SEQ_NRMIDIS; | |
263 unsigned IOCTL_SNDCTL_SEQ_NRSYNTHS = SNDCTL_SEQ_NRSYNTHS; | |
264 unsigned IOCTL_SNDCTL_SEQ_OUTOFBAND = SNDCTL_SEQ_OUTOFBAND; | |
265 unsigned IOCTL_SNDCTL_SEQ_PANIC = SNDCTL_SEQ_PANIC; | |
266 unsigned IOCTL_SNDCTL_SEQ_PERCMODE = SNDCTL_SEQ_PERCMODE; | |
267 unsigned IOCTL_SNDCTL_SEQ_RESET = SNDCTL_SEQ_RESET; | |
268 unsigned IOCTL_SNDCTL_SEQ_RESETSAMPLES = SNDCTL_SEQ_RESETSAMPLES; | |
269 unsigned IOCTL_SNDCTL_SEQ_SYNC = SNDCTL_SEQ_SYNC; | |
270 unsigned IOCTL_SNDCTL_SEQ_TESTMIDI = SNDCTL_SEQ_TESTMIDI; | |
271 unsigned IOCTL_SNDCTL_SEQ_THRESHOLD = SNDCTL_SEQ_THRESHOLD; | |
272 unsigned IOCTL_SNDCTL_SYNTH_INFO = SNDCTL_SYNTH_INFO; | |
273 unsigned IOCTL_SNDCTL_SYNTH_MEMAVL = SNDCTL_SYNTH_MEMAVL; | |
274 unsigned IOCTL_SNDCTL_TMR_CONTINUE = SNDCTL_TMR_CONTINUE; | |
275 unsigned IOCTL_SNDCTL_TMR_METRONOME = SNDCTL_TMR_METRONOME; | |
276 unsigned IOCTL_SNDCTL_TMR_SELECT = SNDCTL_TMR_SELECT; | |
277 unsigned IOCTL_SNDCTL_TMR_SOURCE = SNDCTL_TMR_SOURCE; | |
278 unsigned IOCTL_SNDCTL_TMR_START = SNDCTL_TMR_START; | |
279 unsigned IOCTL_SNDCTL_TMR_STOP = SNDCTL_TMR_STOP; | |
280 unsigned IOCTL_SNDCTL_TMR_TEMPO = SNDCTL_TMR_TEMPO; | |
281 unsigned IOCTL_SNDCTL_TMR_TIMEBASE = SNDCTL_TMR_TIMEBASE; | |
282 unsigned IOCTL_SOUND_MIXER_READ_ALTPCM = SOUND_MIXER_READ_ALTPCM; | |
283 unsigned IOCTL_SOUND_MIXER_READ_BASS = SOUND_MIXER_READ_BASS; | |
284 unsigned IOCTL_SOUND_MIXER_READ_CAPS = SOUND_MIXER_READ_CAPS; | |
285 unsigned IOCTL_SOUND_MIXER_READ_CD = SOUND_MIXER_READ_CD; | |
286 unsigned IOCTL_SOUND_MIXER_READ_DEVMASK = SOUND_MIXER_READ_DEVMASK; | |
287 unsigned IOCTL_SOUND_MIXER_READ_ENHANCE = SOUND_MIXER_READ_ENHANCE; | |
288 unsigned IOCTL_SOUND_MIXER_READ_IGAIN = SOUND_MIXER_READ_IGAIN; | |
289 unsigned IOCTL_SOUND_MIXER_READ_IMIX = SOUND_MIXER_READ_IMIX; | |
290 unsigned IOCTL_SOUND_MIXER_READ_LINE = SOUND_MIXER_READ_LINE; | |
291 unsigned IOCTL_SOUND_MIXER_READ_LINE1 = SOUND_MIXER_READ_LINE1; | |
292 unsigned IOCTL_SOUND_MIXER_READ_LINE2 = SOUND_MIXER_READ_LINE2; | |
293 unsigned IOCTL_SOUND_MIXER_READ_LINE3 = SOUND_MIXER_READ_LINE3; | |
294 unsigned IOCTL_SOUND_MIXER_READ_LOUD = SOUND_MIXER_READ_LOUD; | |
295 unsigned IOCTL_SOUND_MIXER_READ_MIC = SOUND_MIXER_READ_MIC; | |
296 unsigned IOCTL_SOUND_MIXER_READ_MUTE = SOUND_MIXER_READ_MUTE; | |
297 unsigned IOCTL_SOUND_MIXER_READ_OGAIN = SOUND_MIXER_READ_OGAIN; | |
298 unsigned IOCTL_SOUND_MIXER_READ_PCM = SOUND_MIXER_READ_PCM; | |
299 unsigned IOCTL_SOUND_MIXER_READ_RECLEV = SOUND_MIXER_READ_RECLEV; | |
300 unsigned IOCTL_SOUND_MIXER_READ_RECMASK = SOUND_MIXER_READ_RECMASK; | |
301 unsigned IOCTL_SOUND_MIXER_READ_RECSRC = SOUND_MIXER_READ_RECSRC; | |
302 unsigned IOCTL_SOUND_MIXER_READ_SPEAKER = SOUND_MIXER_READ_SPEAKER; | |
303 unsigned IOCTL_SOUND_MIXER_READ_STEREODEVS = SOUND_MIXER_READ_STEREODEVS; | |
304 unsigned IOCTL_SOUND_MIXER_READ_SYNTH = SOUND_MIXER_READ_SYNTH; | |
305 unsigned IOCTL_SOUND_MIXER_READ_TREBLE = SOUND_MIXER_READ_TREBLE; | |
306 unsigned IOCTL_SOUND_MIXER_READ_VOLUME = SOUND_MIXER_READ_VOLUME; | |
307 unsigned IOCTL_SOUND_MIXER_WRITE_ALTPCM = SOUND_MIXER_WRITE_ALTPCM; | |
308 unsigned IOCTL_SOUND_MIXER_WRITE_BASS = SOUND_MIXER_WRITE_BASS; | |
309 unsigned IOCTL_SOUND_MIXER_WRITE_CD = SOUND_MIXER_WRITE_CD; | |
310 unsigned IOCTL_SOUND_MIXER_WRITE_ENHANCE = SOUND_MIXER_WRITE_ENHANCE; | |
311 unsigned IOCTL_SOUND_MIXER_WRITE_IGAIN = SOUND_MIXER_WRITE_IGAIN; | |
312 unsigned IOCTL_SOUND_MIXER_WRITE_IMIX = SOUND_MIXER_WRITE_IMIX; | |
313 unsigned IOCTL_SOUND_MIXER_WRITE_LINE = SOUND_MIXER_WRITE_LINE; | |
314 unsigned IOCTL_SOUND_MIXER_WRITE_LINE1 = SOUND_MIXER_WRITE_LINE1; | |
315 unsigned IOCTL_SOUND_MIXER_WRITE_LINE2 = SOUND_MIXER_WRITE_LINE2; | |
316 unsigned IOCTL_SOUND_MIXER_WRITE_LINE3 = SOUND_MIXER_WRITE_LINE3; | |
317 unsigned IOCTL_SOUND_MIXER_WRITE_LOUD = SOUND_MIXER_WRITE_LOUD; | |
318 unsigned IOCTL_SOUND_MIXER_WRITE_MIC = SOUND_MIXER_WRITE_MIC; | |
319 unsigned IOCTL_SOUND_MIXER_WRITE_MUTE = SOUND_MIXER_WRITE_MUTE; | |
320 unsigned IOCTL_SOUND_MIXER_WRITE_OGAIN = SOUND_MIXER_WRITE_OGAIN; | |
321 unsigned IOCTL_SOUND_MIXER_WRITE_PCM = SOUND_MIXER_WRITE_PCM; | |
322 unsigned IOCTL_SOUND_MIXER_WRITE_RECLEV = SOUND_MIXER_WRITE_RECLEV; | |
323 unsigned IOCTL_SOUND_MIXER_WRITE_RECSRC = SOUND_MIXER_WRITE_RECSRC; | |
324 unsigned IOCTL_SOUND_MIXER_WRITE_SPEAKER = SOUND_MIXER_WRITE_SPEAKER; | |
325 unsigned IOCTL_SOUND_MIXER_WRITE_SYNTH = SOUND_MIXER_WRITE_SYNTH; | |
326 unsigned IOCTL_SOUND_MIXER_WRITE_TREBLE = SOUND_MIXER_WRITE_TREBLE; | |
327 unsigned IOCTL_SOUND_MIXER_WRITE_VOLUME = SOUND_MIXER_WRITE_VOLUME; | |
328 unsigned IOCTL_VT_ACTIVATE = VT_ACTIVATE; | |
329 unsigned IOCTL_VT_GETMODE = VT_GETMODE; | |
330 unsigned IOCTL_VT_OPENQRY = VT_OPENQRY; | |
331 unsigned IOCTL_VT_RELDISP = VT_RELDISP; | |
332 unsigned IOCTL_VT_SETMODE = VT_SETMODE; | |
333 unsigned IOCTL_VT_WAITACTIVE = VT_WAITACTIVE; | |
334 unsigned IOCTL_GIO_SCRNMAP = GIO_SCRNMAP; | |
335 unsigned IOCTL_KDDISABIO = KDDISABIO; | |
336 unsigned IOCTL_KDENABIO = KDENABIO; | |
337 unsigned IOCTL_KDGETLED = KDGETLED; | |
338 unsigned IOCTL_KDGETMODE = KDGETMODE; | |
339 unsigned IOCTL_KDGKBMODE = KDGKBMODE; | |
340 unsigned IOCTL_KDGKBTYPE = KDGKBTYPE; | |
341 unsigned IOCTL_KDMKTONE = KDMKTONE; | |
342 unsigned IOCTL_KDSETLED = KDSETLED; | |
343 unsigned IOCTL_KDSETMODE = KDSETMODE; | |
344 unsigned IOCTL_KDSKBMODE = KDSKBMODE; | |
345 unsigned IOCTL_KIOCSOUND = KIOCSOUND; | |
346 unsigned IOCTL_PIO_SCRNMAP = PIO_SCRNMAP; | |
347 unsigned IOCTL_SNDCTL_DSP_GETISPACE = SNDCTL_DSP_GETISPACE; | |
348 | |
349 const int si_SEGV_MAPERR = SEGV_MAPERR; | |
350 const int si_SEGV_ACCERR = SEGV_ACCERR; | |
351 const int unvis_valid = UNVIS_VALID; | |
352 const int unvis_validpush = UNVIS_VALIDPUSH; | |
353 } // namespace __sanitizer | |
354 | |
355 using namespace __sanitizer; | |
356 | |
357 COMPILER_CHECK(sizeof(__sanitizer_pthread_attr_t) >= sizeof(pthread_attr_t)); | |
358 | |
359 COMPILER_CHECK(sizeof(socklen_t) == sizeof(unsigned)); | |
360 CHECK_TYPE_SIZE(pthread_key_t); | |
361 | |
362 // There are more undocumented fields in dl_phdr_info that we are not interested | |
363 // in. | |
364 COMPILER_CHECK(sizeof(__sanitizer_dl_phdr_info) <= sizeof(dl_phdr_info)); | |
365 CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_addr); | |
366 CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_name); | |
367 CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phdr); | |
368 CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phnum); | |
369 | |
370 CHECK_TYPE_SIZE(glob_t); | |
371 CHECK_SIZE_AND_OFFSET(glob_t, gl_pathc); | |
372 CHECK_SIZE_AND_OFFSET(glob_t, gl_pathv); | |
373 CHECK_SIZE_AND_OFFSET(glob_t, gl_offs); | |
374 CHECK_SIZE_AND_OFFSET(glob_t, gl_flags); | |
375 CHECK_SIZE_AND_OFFSET(glob_t, gl_closedir); | |
376 CHECK_SIZE_AND_OFFSET(glob_t, gl_readdir); | |
377 CHECK_SIZE_AND_OFFSET(glob_t, gl_opendir); | |
378 CHECK_SIZE_AND_OFFSET(glob_t, gl_lstat); | |
379 CHECK_SIZE_AND_OFFSET(glob_t, gl_stat); | |
380 | |
381 CHECK_TYPE_SIZE(addrinfo); | |
382 CHECK_SIZE_AND_OFFSET(addrinfo, ai_flags); | |
383 CHECK_SIZE_AND_OFFSET(addrinfo, ai_family); | |
384 CHECK_SIZE_AND_OFFSET(addrinfo, ai_socktype); | |
385 CHECK_SIZE_AND_OFFSET(addrinfo, ai_protocol); | |
386 CHECK_SIZE_AND_OFFSET(addrinfo, ai_protocol); | |
387 CHECK_SIZE_AND_OFFSET(addrinfo, ai_addrlen); | |
388 CHECK_SIZE_AND_OFFSET(addrinfo, ai_canonname); | |
389 CHECK_SIZE_AND_OFFSET(addrinfo, ai_addr); | |
390 | |
391 CHECK_TYPE_SIZE(hostent); | |
392 CHECK_SIZE_AND_OFFSET(hostent, h_name); | |
393 CHECK_SIZE_AND_OFFSET(hostent, h_aliases); | |
394 CHECK_SIZE_AND_OFFSET(hostent, h_addrtype); | |
395 CHECK_SIZE_AND_OFFSET(hostent, h_length); | |
396 CHECK_SIZE_AND_OFFSET(hostent, h_addr_list); | |
397 | |
398 CHECK_TYPE_SIZE(iovec); | |
399 CHECK_SIZE_AND_OFFSET(iovec, iov_base); | |
400 CHECK_SIZE_AND_OFFSET(iovec, iov_len); | |
401 | |
402 CHECK_TYPE_SIZE(msghdr); | |
403 CHECK_SIZE_AND_OFFSET(msghdr, msg_name); | |
404 CHECK_SIZE_AND_OFFSET(msghdr, msg_namelen); | |
405 CHECK_SIZE_AND_OFFSET(msghdr, msg_iov); | |
406 CHECK_SIZE_AND_OFFSET(msghdr, msg_iovlen); | |
407 CHECK_SIZE_AND_OFFSET(msghdr, msg_control); | |
408 CHECK_SIZE_AND_OFFSET(msghdr, msg_controllen); | |
409 CHECK_SIZE_AND_OFFSET(msghdr, msg_flags); | |
410 | |
411 CHECK_TYPE_SIZE(cmsghdr); | |
412 CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_len); | |
413 CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_level); | |
414 CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_type); | |
415 | |
416 COMPILER_CHECK(sizeof(__sanitizer_dirent) <= sizeof(dirent)); | |
417 CHECK_SIZE_AND_OFFSET(dirent, d_ino); | |
418 CHECK_SIZE_AND_OFFSET(dirent, d_reclen); | |
419 | |
420 CHECK_TYPE_SIZE(ifconf); | |
421 CHECK_SIZE_AND_OFFSET(ifconf, ifc_len); | |
422 CHECK_SIZE_AND_OFFSET(ifconf, ifc_ifcu); | |
423 | |
424 CHECK_TYPE_SIZE(pollfd); | |
425 CHECK_SIZE_AND_OFFSET(pollfd, fd); | |
426 CHECK_SIZE_AND_OFFSET(pollfd, events); | |
427 CHECK_SIZE_AND_OFFSET(pollfd, revents); | |
428 | |
429 CHECK_TYPE_SIZE(nfds_t); | |
430 | |
431 CHECK_TYPE_SIZE(sigset_t); | |
432 | |
433 COMPILER_CHECK(sizeof(__sanitizer_sigaction) == sizeof(struct sigaction)); | |
434 // Can't write checks for sa_handler and sa_sigaction due to them being | |
435 // preprocessor macros. | |
436 CHECK_STRUCT_SIZE_AND_OFFSET(sigaction, sa_mask); | |
437 | |
438 CHECK_TYPE_SIZE(wordexp_t); | |
439 CHECK_SIZE_AND_OFFSET(wordexp_t, we_wordc); | |
440 CHECK_SIZE_AND_OFFSET(wordexp_t, we_wordv); | |
441 CHECK_SIZE_AND_OFFSET(wordexp_t, we_offs); | |
442 | |
443 CHECK_TYPE_SIZE(tm); | |
444 CHECK_SIZE_AND_OFFSET(tm, tm_sec); | |
445 CHECK_SIZE_AND_OFFSET(tm, tm_min); | |
446 CHECK_SIZE_AND_OFFSET(tm, tm_hour); | |
447 CHECK_SIZE_AND_OFFSET(tm, tm_mday); | |
448 CHECK_SIZE_AND_OFFSET(tm, tm_mon); | |
449 CHECK_SIZE_AND_OFFSET(tm, tm_year); | |
450 CHECK_SIZE_AND_OFFSET(tm, tm_wday); | |
451 CHECK_SIZE_AND_OFFSET(tm, tm_yday); | |
452 CHECK_SIZE_AND_OFFSET(tm, tm_isdst); | |
453 CHECK_SIZE_AND_OFFSET(tm, tm_gmtoff); | |
454 CHECK_SIZE_AND_OFFSET(tm, tm_zone); | |
455 | |
456 CHECK_TYPE_SIZE(ether_addr); | |
457 | |
458 CHECK_TYPE_SIZE(ipc_perm); | |
459 CHECK_SIZE_AND_OFFSET(ipc_perm, key); | |
460 CHECK_SIZE_AND_OFFSET(ipc_perm, seq); | |
461 CHECK_SIZE_AND_OFFSET(ipc_perm, uid); | |
462 CHECK_SIZE_AND_OFFSET(ipc_perm, gid); | |
463 CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); | |
464 CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); | |
465 | |
466 CHECK_TYPE_SIZE(shmid_ds); | |
467 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_perm); | |
468 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_segsz); | |
469 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_atime); | |
470 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_dtime); | |
471 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_ctime); | |
472 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_cpid); | |
473 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_lpid); | |
474 CHECK_SIZE_AND_OFFSET(shmid_ds, shm_nattch); | |
475 | |
476 CHECK_TYPE_SIZE(clock_t); | |
477 | |
478 CHECK_TYPE_SIZE(ifaddrs); | |
479 CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_next); | |
480 CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_name); | |
481 CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_addr); | |
482 CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_netmask); | |
483 #undef ifa_dstaddr | |
484 CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_dstaddr); | |
485 CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_data); | |
486 | |
487 CHECK_TYPE_SIZE(timeb); | |
488 CHECK_SIZE_AND_OFFSET(timeb, time); | |
489 CHECK_SIZE_AND_OFFSET(timeb, millitm); | |
490 CHECK_SIZE_AND_OFFSET(timeb, timezone); | |
491 CHECK_SIZE_AND_OFFSET(timeb, dstflag); | |
492 | |
493 CHECK_TYPE_SIZE(passwd); | |
494 CHECK_SIZE_AND_OFFSET(passwd, pw_name); | |
495 CHECK_SIZE_AND_OFFSET(passwd, pw_passwd); | |
496 CHECK_SIZE_AND_OFFSET(passwd, pw_uid); | |
497 CHECK_SIZE_AND_OFFSET(passwd, pw_gid); | |
498 CHECK_SIZE_AND_OFFSET(passwd, pw_dir); | |
499 CHECK_SIZE_AND_OFFSET(passwd, pw_shell); | |
500 | |
501 CHECK_SIZE_AND_OFFSET(passwd, pw_gecos); | |
502 | |
503 CHECK_TYPE_SIZE(group); | |
504 CHECK_SIZE_AND_OFFSET(group, gr_name); | |
505 CHECK_SIZE_AND_OFFSET(group, gr_passwd); | |
506 CHECK_SIZE_AND_OFFSET(group, gr_gid); | |
507 CHECK_SIZE_AND_OFFSET(group, gr_mem); | |
508 | |
509 #if HAVE_RPC_XDR_H | |
510 CHECK_TYPE_SIZE(XDR); | |
511 CHECK_SIZE_AND_OFFSET(XDR, x_op); | |
512 CHECK_SIZE_AND_OFFSET(XDR, x_ops); | |
513 CHECK_SIZE_AND_OFFSET(XDR, x_public); | |
514 CHECK_SIZE_AND_OFFSET(XDR, x_private); | |
515 CHECK_SIZE_AND_OFFSET(XDR, x_base); | |
516 CHECK_SIZE_AND_OFFSET(XDR, x_handy); | |
517 COMPILER_CHECK(__sanitizer_XDR_ENCODE == XDR_ENCODE); | |
518 COMPILER_CHECK(__sanitizer_XDR_DECODE == XDR_DECODE); | |
519 COMPILER_CHECK(__sanitizer_XDR_FREE == XDR_FREE); | |
520 #endif | |
521 | |
522 CHECK_TYPE_SIZE(sem_t); | |
523 | |
524 COMPILER_CHECK(sizeof(__sanitizer_cap_rights_t) >= sizeof(cap_rights_t)); | |
525 #endif // SANITIZER_FREEBSD |