sanitizer_platform_limits_posix.h revision 5e2d3776a314629680921abd1d55d89d95a2da90
1//===-- sanitizer_platform_limits_posix.h ---------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file is a part of Sanitizer common code. 11// 12// Sizes and layouts of platform-specific POSIX data structures. 13//===----------------------------------------------------------------------===// 14 15#ifndef SANITIZER_PLATFORM_LIMITS_POSIX_H 16#define SANITIZER_PLATFORM_LIMITS_POSIX_H 17 18#include "sanitizer_internal_defs.h" 19#include "sanitizer_platform.h" 20 21namespace __sanitizer { 22 extern unsigned struct_utsname_sz; 23 extern unsigned struct_stat_sz; 24 extern unsigned struct_stat64_sz; 25 extern unsigned struct_rusage_sz; 26 extern unsigned struct_passwd_sz; 27 extern unsigned struct_group_sz; 28 extern unsigned siginfo_t_sz; 29 extern unsigned struct_itimerval_sz; 30 extern unsigned pthread_t_sz; 31 extern unsigned pthread_cond_t_sz; 32 extern unsigned pid_t_sz; 33 extern unsigned timeval_sz; 34 extern unsigned uid_t_sz; 35 extern unsigned mbstate_t_sz; 36 extern unsigned struct_timezone_sz; 37 extern unsigned struct_tms_sz; 38 extern unsigned struct_itimerspec_sz; 39 extern unsigned struct_sigevent_sz; 40 extern unsigned struct_sched_param_sz; 41 42#if !SANITIZER_ANDROID 43 extern unsigned ucontext_t_sz; 44#endif // !SANITIZER_ANDROID 45 46#if SANITIZER_LINUX 47 extern unsigned struct___old_kernel_stat_sz; 48 extern unsigned struct_kernel_stat_sz; 49 extern unsigned struct_kernel_stat64_sz; 50 extern unsigned struct_io_event_sz; 51 extern unsigned struct_iocb_sz; 52 extern unsigned struct_utimbuf_sz; 53 extern unsigned struct_new_utsname_sz; 54 extern unsigned struct_old_utsname_sz; 55 extern unsigned struct_oldold_utsname_sz; 56 extern unsigned struct_msqid_ds_sz; 57 extern unsigned struct_shmid_ds_sz; 58 extern unsigned struct_mq_attr_sz; 59 extern unsigned struct_perf_event_attr_sz; 60 extern unsigned struct_timex_sz; 61 extern unsigned struct_ustat_sz; 62 63 extern unsigned struct_rlimit_sz; 64 extern unsigned struct_statfs_sz; 65 extern unsigned struct_epoll_event_sz; 66 extern unsigned struct_sysinfo_sz; 67 extern unsigned struct_timespec_sz; 68 extern unsigned __user_cap_header_struct_sz; 69 extern unsigned __user_cap_data_struct_sz; 70 const unsigned old_sigset_t_sz = sizeof(unsigned long); 71 const unsigned struct_kexec_segment_sz = 4 * sizeof(unsigned long); 72 73 struct __sanitizer___sysctl_args { 74 int *name; 75 int nlen; 76 void *oldval; 77 uptr *oldlenp; 78 void *newval; 79 uptr newlen; 80 unsigned long ___unused[4]; 81 }; 82#endif // SANITIZER_LINUX 83 84#if SANITIZER_LINUX && !SANITIZER_ANDROID 85 extern unsigned struct_rlimit64_sz; 86 extern unsigned struct_statfs64_sz; 87#endif // SANITIZER_LINUX && !SANITIZER_ANDROID 88 89 struct __sanitizer_iovec { 90 void *iov_base; 91 uptr iov_len; 92 }; 93 94#if SANITIZER_MAC 95 typedef unsigned long __sanitizer_pthread_key_t; 96#else 97 typedef unsigned __sanitizer_pthread_key_t; 98#endif 99 100 struct __sanitizer_tm { 101 int tm_sec; 102 int tm_min; 103 int tm_hour; 104 int tm_mday; 105 int tm_mon; 106 int tm_year; 107 int tm_wday; 108 int tm_yday; 109 int tm_isdst; 110 long int tm_gmtoff; 111 const char *tm_zone; 112 }; 113 114#if SANITIZER_ANDROID || SANITIZER_MAC 115 struct __sanitizer_msghdr { 116 void *msg_name; 117 unsigned msg_namelen; 118 struct __sanitizer_iovec *msg_iov; 119 unsigned msg_iovlen; 120 void *msg_control; 121 unsigned msg_controllen; 122 int msg_flags; 123 }; 124 struct __sanitizer_cmsghdr { 125 unsigned cmsg_len; 126 int cmsg_level; 127 int cmsg_type; 128 }; 129#else 130 struct __sanitizer_msghdr { 131 void *msg_name; 132 unsigned msg_namelen; 133 struct __sanitizer_iovec *msg_iov; 134 uptr msg_iovlen; 135 void *msg_control; 136 uptr msg_controllen; 137 int msg_flags; 138 }; 139 struct __sanitizer_cmsghdr { 140 uptr cmsg_len; 141 int cmsg_level; 142 int cmsg_type; 143 }; 144#endif 145 146#if SANITIZER_MAC 147 struct __sanitizer_dirent { 148 unsigned long long d_ino; 149 unsigned long long d_seekoff; 150 unsigned short d_reclen; 151 // more fields that we don't care about 152 }; 153#elif SANITIZER_ANDROID 154 struct __sanitizer_dirent { 155 unsigned long long d_ino; 156 unsigned long long d_off; 157 unsigned short d_reclen; 158 // more fields that we don't care about 159 }; 160#else 161 struct __sanitizer_dirent { 162 uptr d_ino; 163 uptr d_off; 164 unsigned short d_reclen; 165 // more fields that we don't care about 166 }; 167#endif 168 169#if SANITIZER_LINUX && !SANITIZER_ANDROID 170 struct __sanitizer_dirent64 { 171 unsigned long long d_ino; 172 unsigned long long d_off; 173 unsigned short d_reclen; 174 // more fields that we don't care about 175 }; 176#endif 177 178#if SANITIZER_LINUX 179#ifdef _LP64 180 typedef unsigned __sanitizer___kernel_uid_t; 181 typedef unsigned __sanitizer___kernel_gid_t; 182#else 183 typedef unsigned short __sanitizer___kernel_uid_t; 184 typedef unsigned short __sanitizer___kernel_gid_t; 185#endif 186 typedef unsigned short __sanitizer___kernel_old_uid_t; 187 typedef unsigned short __sanitizer___kernel_old_gid_t; 188 typedef long __sanitizer___kernel_off_t; 189 typedef long long __sanitizer___kernel_loff_t; 190 typedef struct { 191 unsigned long fds_bits[1024 / (8 * sizeof(long))]; 192 } __sanitizer___kernel_fd_set; 193#endif 194 195 // This thing depends on the platform. We are only interested in the upper 196 // limit. Verified with a compiler assert in .cc. 197 const int pthread_attr_t_max_sz = 128; 198 union __sanitizer_pthread_attr_t { 199 char size[pthread_attr_t_max_sz]; // NOLINT 200 void *align; 201 }; 202 203#if SANITIZER_ANDROID 204 typedef unsigned long __sanitizer_sigset_t; 205#elif SANITIZER_MAC 206 typedef unsigned __sanitizer_sigset_t; 207#elif SANITIZER_LINUX 208 struct __sanitizer_sigset_t { 209 // The size is determined by looking at sizeof of real sigset_t on linux. 210 uptr val[128 / sizeof(uptr)]; 211 }; 212#endif 213 214 struct __sanitizer_sigaction { 215 union { 216 void (*sa_handler)(int sig); 217 void (*sa_sigaction)(int sig, void *siginfo, void *uctx); 218 }; 219 __sanitizer_sigset_t sa_mask; 220 int sa_flags; 221#if SANITIZER_LINUX 222 void (*sa_restorer)(); 223#endif 224 }; 225 226 struct __sanitizer_kernel_sigset_t { 227 u8 sig[8]; 228 }; 229 230 struct __sanitizer_kernel_sigaction_t { 231 union { 232 void (*sigaction)(int signo, void *info, void *ctx); 233 void (*handler)(int signo); 234 }; 235 unsigned long sa_flags; 236 void (*sa_restorer)(void); 237 __sanitizer_kernel_sigset_t sa_mask; 238 }; 239 240 extern uptr sig_ign; 241 extern uptr sig_dfl; 242 extern uptr sa_siginfo; 243 244#if SANITIZER_LINUX 245 extern int e_tabsz; 246#endif 247 248 extern int af_inet; 249 extern int af_inet6; 250 uptr __sanitizer_in_addr_sz(int af); 251 252#if SANITIZER_LINUX 253 struct __sanitizer_dl_phdr_info { 254 uptr dlpi_addr; 255 const char *dlpi_name; 256 const void *dlpi_phdr; 257 short dlpi_phnum; 258 }; 259#endif 260 261 struct __sanitizer_addrinfo { 262 int ai_flags; 263 int ai_family; 264 int ai_socktype; 265 int ai_protocol; 266#if SANITIZER_ANDROID || SANITIZER_MAC 267 unsigned ai_addrlen; 268 char *ai_canonname; 269 void *ai_addr; 270#else // LINUX 271 unsigned ai_addrlen; 272 void *ai_addr; 273 char *ai_canonname; 274#endif 275 struct __sanitizer_addrinfo *ai_next; 276 }; 277 278 struct __sanitizer_hostent { 279 char *h_name; 280 char **h_aliases; 281 int h_addrtype; 282 int h_length; 283 char **h_addr_list; 284 }; 285 286 struct __sanitizer_pollfd { 287 int fd; 288 short events; 289 short revents; 290 }; 291 292#if SANITIZER_ANDROID || SANITIZER_MAC 293 typedef unsigned __sanitizer_nfds_t; 294#else 295 typedef unsigned long __sanitizer_nfds_t; 296#endif 297 298#if SANITIZER_LINUX && !SANITIZER_ANDROID 299 struct __sanitizer_glob_t { 300 uptr gl_pathc; 301 char **gl_pathv; 302 uptr gl_offs; 303 int gl_flags; 304 305 void (*gl_closedir)(void *dirp); 306 void *(*gl_readdir)(void *dirp); 307 void *(*gl_opendir)(const char *); 308 int (*gl_lstat)(const char *, void *); 309 int (*gl_stat)(const char *, void *); 310 }; 311 312 extern int glob_nomatch; 313 extern int glob_altdirfunc; 314#endif 315 316 extern unsigned path_max; 317 318 struct __sanitizer_wordexp_t { 319 uptr we_wordc; 320 char **we_wordv; 321 uptr we_offs; 322 }; 323 324#if SANITIZER_LINUX && !SANITIZER_ANDROID && \ 325 (defined(__i386) || defined (__x86_64)) // NOLINT 326 extern unsigned struct_user_regs_struct_sz; 327 extern unsigned struct_user_fpregs_struct_sz; 328 extern unsigned struct_user_fpxregs_struct_sz; 329 330 extern int ptrace_getregs; 331 extern int ptrace_setregs; 332 extern int ptrace_getfpregs; 333 extern int ptrace_setfpregs; 334 extern int ptrace_getfpxregs; 335 extern int ptrace_setfpxregs; 336 extern int ptrace_getsiginfo; 337 extern int ptrace_setsiginfo; 338 extern int ptrace_getregset; 339 extern int ptrace_setregset; 340#endif 341 342 // ioctl arguments 343 struct __sanitizer_ifconf { 344 int ifc_len; 345 union { 346 void *ifcu_req; 347 } ifc_ifcu; 348#if SANITIZER_MAC 349 } __attribute__((packed)); 350#else 351 }; 352#endif 353 354#define IOC_SIZE(nr) (((nr) >> 16) & 0x3fff) 355 356 extern unsigned struct_arpreq_sz; 357 extern unsigned struct_ifreq_sz; 358 extern unsigned struct_termios_sz; 359 extern unsigned struct_winsize_sz; 360 361#if SANITIZER_LINUX 362 extern unsigned struct_cdrom_msf_sz; 363 extern unsigned struct_cdrom_multisession_sz; 364 extern unsigned struct_cdrom_read_audio_sz; 365 extern unsigned struct_cdrom_subchnl_sz; 366 extern unsigned struct_cdrom_ti_sz; 367 extern unsigned struct_cdrom_tocentry_sz; 368 extern unsigned struct_cdrom_tochdr_sz; 369 extern unsigned struct_cdrom_volctrl_sz; 370 extern unsigned struct_copr_buffer_sz; 371 extern unsigned struct_copr_debug_buf_sz; 372 extern unsigned struct_copr_msg_sz; 373 extern unsigned struct_ff_effect_sz; 374 extern unsigned struct_floppy_drive_params_sz; 375 extern unsigned struct_floppy_drive_struct_sz; 376 extern unsigned struct_floppy_fdc_state_sz; 377 extern unsigned struct_floppy_max_errors_sz; 378 extern unsigned struct_floppy_raw_cmd_sz; 379 extern unsigned struct_floppy_struct_sz; 380 extern unsigned struct_floppy_write_errors_sz; 381 extern unsigned struct_format_descr_sz; 382 extern unsigned struct_hd_driveid_sz; 383 extern unsigned struct_hd_geometry_sz; 384 extern unsigned struct_input_absinfo_sz; 385 extern unsigned struct_input_id_sz; 386 extern unsigned struct_midi_info_sz; 387 extern unsigned struct_mtget_sz; 388 extern unsigned struct_mtop_sz; 389 extern unsigned struct_mtpos_sz; 390 extern unsigned struct_rtentry_sz; 391 extern unsigned struct_sbi_instrument_sz; 392 extern unsigned struct_seq_event_rec_sz; 393 extern unsigned struct_synth_info_sz; 394 extern unsigned struct_termio_sz; 395 extern unsigned struct_vt_consize_sz; 396 extern unsigned struct_vt_mode_sz; 397 extern unsigned struct_vt_sizes_sz; 398 extern unsigned struct_vt_stat_sz; 399#endif 400 401#if SANITIZER_LINUX && !SANITIZER_ANDROID 402 extern unsigned struct_audio_buf_info_sz; 403 extern unsigned struct_ax25_parms_struct_sz; 404 extern unsigned struct_cyclades_monitor_sz; 405 extern unsigned struct_input_keymap_entry_sz; 406 extern unsigned struct_ipx_config_data_sz; 407 extern unsigned struct_kbdiacrs_sz; 408 extern unsigned struct_kbentry_sz; 409 extern unsigned struct_kbkeycode_sz; 410 extern unsigned struct_kbsentry_sz; 411 extern unsigned struct_mtconfiginfo_sz; 412 extern unsigned struct_nr_parms_struct_sz; 413 extern unsigned struct_ppp_stats_sz; 414 extern unsigned struct_scc_modem_sz; 415 extern unsigned struct_scc_stat_sz; 416 extern unsigned struct_serial_multiport_struct_sz; 417 extern unsigned struct_serial_struct_sz; 418 extern unsigned struct_sockaddr_ax25_sz; 419 extern unsigned struct_unimapdesc_sz; 420 extern unsigned struct_unimapinit_sz; 421#endif 422 423#if !SANITIZER_ANDROID 424 extern unsigned struct_sioc_sg_req_sz; 425 extern unsigned struct_sioc_vif_req_sz; 426#endif 427 428 // ioctl request identifiers 429 430 // A special value to mark ioctls that are not present on the target platform, 431 // when it can not be determined without including any system headers. 432 extern unsigned IOCTL_NOT_PRESENT; 433 434 extern unsigned IOCTL_FIOASYNC; 435 extern unsigned IOCTL_FIOCLEX; 436 extern unsigned IOCTL_FIOGETOWN; 437 extern unsigned IOCTL_FIONBIO; 438 extern unsigned IOCTL_FIONCLEX; 439 extern unsigned IOCTL_FIOSETOWN; 440 extern unsigned IOCTL_SIOCADDMULTI; 441 extern unsigned IOCTL_SIOCATMARK; 442 extern unsigned IOCTL_SIOCDELMULTI; 443 extern unsigned IOCTL_SIOCGIFADDR; 444 extern unsigned IOCTL_SIOCGIFBRDADDR; 445 extern unsigned IOCTL_SIOCGIFCONF; 446 extern unsigned IOCTL_SIOCGIFDSTADDR; 447 extern unsigned IOCTL_SIOCGIFFLAGS; 448 extern unsigned IOCTL_SIOCGIFMETRIC; 449 extern unsigned IOCTL_SIOCGIFMTU; 450 extern unsigned IOCTL_SIOCGIFNETMASK; 451 extern unsigned IOCTL_SIOCGPGRP; 452 extern unsigned IOCTL_SIOCSIFADDR; 453 extern unsigned IOCTL_SIOCSIFBRDADDR; 454 extern unsigned IOCTL_SIOCSIFDSTADDR; 455 extern unsigned IOCTL_SIOCSIFFLAGS; 456 extern unsigned IOCTL_SIOCSIFMETRIC; 457 extern unsigned IOCTL_SIOCSIFMTU; 458 extern unsigned IOCTL_SIOCSIFNETMASK; 459 extern unsigned IOCTL_SIOCSPGRP; 460 extern unsigned IOCTL_TIOCCONS; 461 extern unsigned IOCTL_TIOCEXCL; 462 extern unsigned IOCTL_TIOCGETD; 463 extern unsigned IOCTL_TIOCGPGRP; 464 extern unsigned IOCTL_TIOCGWINSZ; 465 extern unsigned IOCTL_TIOCMBIC; 466 extern unsigned IOCTL_TIOCMBIS; 467 extern unsigned IOCTL_TIOCMGET; 468 extern unsigned IOCTL_TIOCMSET; 469 extern unsigned IOCTL_TIOCNOTTY; 470 extern unsigned IOCTL_TIOCNXCL; 471 extern unsigned IOCTL_TIOCOUTQ; 472 extern unsigned IOCTL_TIOCPKT; 473 extern unsigned IOCTL_TIOCSCTTY; 474 extern unsigned IOCTL_TIOCSETD; 475 extern unsigned IOCTL_TIOCSPGRP; 476 extern unsigned IOCTL_TIOCSTI; 477 extern unsigned IOCTL_TIOCSWINSZ; 478#if (SANITIZER_LINUX && !SANITIZER_ANDROID) || SANITIZER_MAC 479 extern unsigned IOCTL_SIOCGETSGCNT; 480 extern unsigned IOCTL_SIOCGETVIFCNT; 481#endif 482#if SANITIZER_LINUX 483 extern unsigned IOCTL_EVIOCGABS; 484 extern unsigned IOCTL_EVIOCGBIT; 485 extern unsigned IOCTL_EVIOCGEFFECTS; 486 extern unsigned IOCTL_EVIOCGID; 487 extern unsigned IOCTL_EVIOCGKEY; 488 extern unsigned IOCTL_EVIOCGKEYCODE; 489 extern unsigned IOCTL_EVIOCGLED; 490 extern unsigned IOCTL_EVIOCGNAME; 491 extern unsigned IOCTL_EVIOCGPHYS; 492 extern unsigned IOCTL_EVIOCGRAB; 493 extern unsigned IOCTL_EVIOCGREP; 494 extern unsigned IOCTL_EVIOCGSND; 495 extern unsigned IOCTL_EVIOCGSW; 496 extern unsigned IOCTL_EVIOCGUNIQ; 497 extern unsigned IOCTL_EVIOCGVERSION; 498 extern unsigned IOCTL_EVIOCRMFF; 499 extern unsigned IOCTL_EVIOCSABS; 500 extern unsigned IOCTL_EVIOCSFF; 501 extern unsigned IOCTL_EVIOCSKEYCODE; 502 extern unsigned IOCTL_EVIOCSREP; 503 extern unsigned IOCTL_BLKFLSBUF; 504 extern unsigned IOCTL_BLKGETSIZE; 505 extern unsigned IOCTL_BLKRAGET; 506 extern unsigned IOCTL_BLKRASET; 507 extern unsigned IOCTL_BLKROGET; 508 extern unsigned IOCTL_BLKROSET; 509 extern unsigned IOCTL_BLKRRPART; 510 extern unsigned IOCTL_CDROMAUDIOBUFSIZ; 511 extern unsigned IOCTL_CDROMEJECT; 512 extern unsigned IOCTL_CDROMEJECT_SW; 513 extern unsigned IOCTL_CDROMMULTISESSION; 514 extern unsigned IOCTL_CDROMPAUSE; 515 extern unsigned IOCTL_CDROMPLAYMSF; 516 extern unsigned IOCTL_CDROMPLAYTRKIND; 517 extern unsigned IOCTL_CDROMREADAUDIO; 518 extern unsigned IOCTL_CDROMREADCOOKED; 519 extern unsigned IOCTL_CDROMREADMODE1; 520 extern unsigned IOCTL_CDROMREADMODE2; 521 extern unsigned IOCTL_CDROMREADRAW; 522 extern unsigned IOCTL_CDROMREADTOCENTRY; 523 extern unsigned IOCTL_CDROMREADTOCHDR; 524 extern unsigned IOCTL_CDROMRESET; 525 extern unsigned IOCTL_CDROMRESUME; 526 extern unsigned IOCTL_CDROMSEEK; 527 extern unsigned IOCTL_CDROMSTART; 528 extern unsigned IOCTL_CDROMSTOP; 529 extern unsigned IOCTL_CDROMSUBCHNL; 530 extern unsigned IOCTL_CDROMVOLCTRL; 531 extern unsigned IOCTL_CDROMVOLREAD; 532 extern unsigned IOCTL_CDROM_GET_UPC; 533 extern unsigned IOCTL_FDCLRPRM; 534 extern unsigned IOCTL_FDDEFPRM; 535 extern unsigned IOCTL_FDFLUSH; 536 extern unsigned IOCTL_FDFMTBEG; 537 extern unsigned IOCTL_FDFMTEND; 538 extern unsigned IOCTL_FDFMTTRK; 539 extern unsigned IOCTL_FDGETDRVPRM; 540 extern unsigned IOCTL_FDGETDRVSTAT; 541 extern unsigned IOCTL_FDGETDRVTYP; 542 extern unsigned IOCTL_FDGETFDCSTAT; 543 extern unsigned IOCTL_FDGETMAXERRS; 544 extern unsigned IOCTL_FDGETPRM; 545 extern unsigned IOCTL_FDMSGOFF; 546 extern unsigned IOCTL_FDMSGON; 547 extern unsigned IOCTL_FDPOLLDRVSTAT; 548 extern unsigned IOCTL_FDRAWCMD; 549 extern unsigned IOCTL_FDRESET; 550 extern unsigned IOCTL_FDSETDRVPRM; 551 extern unsigned IOCTL_FDSETEMSGTRESH; 552 extern unsigned IOCTL_FDSETMAXERRS; 553 extern unsigned IOCTL_FDSETPRM; 554 extern unsigned IOCTL_FDTWADDLE; 555 extern unsigned IOCTL_FDWERRORCLR; 556 extern unsigned IOCTL_FDWERRORGET; 557 extern unsigned IOCTL_HDIO_DRIVE_CMD; 558 extern unsigned IOCTL_HDIO_GETGEO; 559 extern unsigned IOCTL_HDIO_GET_32BIT; 560 extern unsigned IOCTL_HDIO_GET_DMA; 561 extern unsigned IOCTL_HDIO_GET_IDENTITY; 562 extern unsigned IOCTL_HDIO_GET_KEEPSETTINGS; 563 extern unsigned IOCTL_HDIO_GET_MULTCOUNT; 564 extern unsigned IOCTL_HDIO_GET_NOWERR; 565 extern unsigned IOCTL_HDIO_GET_UNMASKINTR; 566 extern unsigned IOCTL_HDIO_SET_32BIT; 567 extern unsigned IOCTL_HDIO_SET_DMA; 568 extern unsigned IOCTL_HDIO_SET_KEEPSETTINGS; 569 extern unsigned IOCTL_HDIO_SET_MULTCOUNT; 570 extern unsigned IOCTL_HDIO_SET_NOWERR; 571 extern unsigned IOCTL_HDIO_SET_UNMASKINTR; 572 extern unsigned IOCTL_MTIOCGET; 573 extern unsigned IOCTL_MTIOCPOS; 574 extern unsigned IOCTL_MTIOCTOP; 575 extern unsigned IOCTL_PPPIOCGASYNCMAP; 576 extern unsigned IOCTL_PPPIOCGDEBUG; 577 extern unsigned IOCTL_PPPIOCGFLAGS; 578 extern unsigned IOCTL_PPPIOCGUNIT; 579 extern unsigned IOCTL_PPPIOCGXASYNCMAP; 580 extern unsigned IOCTL_PPPIOCSASYNCMAP; 581 extern unsigned IOCTL_PPPIOCSDEBUG; 582 extern unsigned IOCTL_PPPIOCSFLAGS; 583 extern unsigned IOCTL_PPPIOCSMAXCID; 584 extern unsigned IOCTL_PPPIOCSMRU; 585 extern unsigned IOCTL_PPPIOCSXASYNCMAP; 586 extern unsigned IOCTL_SIOCADDRT; 587 extern unsigned IOCTL_SIOCDARP; 588 extern unsigned IOCTL_SIOCDELRT; 589 extern unsigned IOCTL_SIOCDRARP; 590 extern unsigned IOCTL_SIOCGARP; 591 extern unsigned IOCTL_SIOCGIFENCAP; 592 extern unsigned IOCTL_SIOCGIFHWADDR; 593 extern unsigned IOCTL_SIOCGIFMAP; 594 extern unsigned IOCTL_SIOCGIFMEM; 595 extern unsigned IOCTL_SIOCGIFNAME; 596 extern unsigned IOCTL_SIOCGIFSLAVE; 597 extern unsigned IOCTL_SIOCGRARP; 598 extern unsigned IOCTL_SIOCGSTAMP; 599 extern unsigned IOCTL_SIOCSARP; 600 extern unsigned IOCTL_SIOCSIFENCAP; 601 extern unsigned IOCTL_SIOCSIFHWADDR; 602 extern unsigned IOCTL_SIOCSIFLINK; 603 extern unsigned IOCTL_SIOCSIFMAP; 604 extern unsigned IOCTL_SIOCSIFMEM; 605 extern unsigned IOCTL_SIOCSIFSLAVE; 606 extern unsigned IOCTL_SIOCSRARP; 607 extern unsigned IOCTL_SNDCTL_COPR_HALT; 608 extern unsigned IOCTL_SNDCTL_COPR_LOAD; 609 extern unsigned IOCTL_SNDCTL_COPR_RCODE; 610 extern unsigned IOCTL_SNDCTL_COPR_RCVMSG; 611 extern unsigned IOCTL_SNDCTL_COPR_RDATA; 612 extern unsigned IOCTL_SNDCTL_COPR_RESET; 613 extern unsigned IOCTL_SNDCTL_COPR_RUN; 614 extern unsigned IOCTL_SNDCTL_COPR_SENDMSG; 615 extern unsigned IOCTL_SNDCTL_COPR_WCODE; 616 extern unsigned IOCTL_SNDCTL_COPR_WDATA; 617 extern unsigned IOCTL_SNDCTL_DSP_GETBLKSIZE; 618 extern unsigned IOCTL_SNDCTL_DSP_GETFMTS; 619 extern unsigned IOCTL_SNDCTL_DSP_NONBLOCK; 620 extern unsigned IOCTL_SNDCTL_DSP_POST; 621 extern unsigned IOCTL_SNDCTL_DSP_RESET; 622 extern unsigned IOCTL_SNDCTL_DSP_SETFMT; 623 extern unsigned IOCTL_SNDCTL_DSP_SETFRAGMENT; 624 extern unsigned IOCTL_SNDCTL_DSP_SPEED; 625 extern unsigned IOCTL_SNDCTL_DSP_STEREO; 626 extern unsigned IOCTL_SNDCTL_DSP_SUBDIVIDE; 627 extern unsigned IOCTL_SNDCTL_DSP_SYNC; 628 extern unsigned IOCTL_SNDCTL_FM_4OP_ENABLE; 629 extern unsigned IOCTL_SNDCTL_FM_LOAD_INSTR; 630 extern unsigned IOCTL_SNDCTL_MIDI_INFO; 631 extern unsigned IOCTL_SNDCTL_MIDI_PRETIME; 632 extern unsigned IOCTL_SNDCTL_SEQ_CTRLRATE; 633 extern unsigned IOCTL_SNDCTL_SEQ_GETINCOUNT; 634 extern unsigned IOCTL_SNDCTL_SEQ_GETOUTCOUNT; 635 extern unsigned IOCTL_SNDCTL_SEQ_NRMIDIS; 636 extern unsigned IOCTL_SNDCTL_SEQ_NRSYNTHS; 637 extern unsigned IOCTL_SNDCTL_SEQ_OUTOFBAND; 638 extern unsigned IOCTL_SNDCTL_SEQ_PANIC; 639 extern unsigned IOCTL_SNDCTL_SEQ_PERCMODE; 640 extern unsigned IOCTL_SNDCTL_SEQ_RESET; 641 extern unsigned IOCTL_SNDCTL_SEQ_RESETSAMPLES; 642 extern unsigned IOCTL_SNDCTL_SEQ_SYNC; 643 extern unsigned IOCTL_SNDCTL_SEQ_TESTMIDI; 644 extern unsigned IOCTL_SNDCTL_SEQ_THRESHOLD; 645 extern unsigned IOCTL_SNDCTL_SYNTH_INFO; 646 extern unsigned IOCTL_SNDCTL_SYNTH_MEMAVL; 647 extern unsigned IOCTL_SNDCTL_TMR_CONTINUE; 648 extern unsigned IOCTL_SNDCTL_TMR_METRONOME; 649 extern unsigned IOCTL_SNDCTL_TMR_SELECT; 650 extern unsigned IOCTL_SNDCTL_TMR_SOURCE; 651 extern unsigned IOCTL_SNDCTL_TMR_START; 652 extern unsigned IOCTL_SNDCTL_TMR_STOP; 653 extern unsigned IOCTL_SNDCTL_TMR_TEMPO; 654 extern unsigned IOCTL_SNDCTL_TMR_TIMEBASE; 655 extern unsigned IOCTL_SOUND_MIXER_READ_ALTPCM; 656 extern unsigned IOCTL_SOUND_MIXER_READ_BASS; 657 extern unsigned IOCTL_SOUND_MIXER_READ_CAPS; 658 extern unsigned IOCTL_SOUND_MIXER_READ_CD; 659 extern unsigned IOCTL_SOUND_MIXER_READ_DEVMASK; 660 extern unsigned IOCTL_SOUND_MIXER_READ_ENHANCE; 661 extern unsigned IOCTL_SOUND_MIXER_READ_IGAIN; 662 extern unsigned IOCTL_SOUND_MIXER_READ_IMIX; 663 extern unsigned IOCTL_SOUND_MIXER_READ_LINE1; 664 extern unsigned IOCTL_SOUND_MIXER_READ_LINE2; 665 extern unsigned IOCTL_SOUND_MIXER_READ_LINE3; 666 extern unsigned IOCTL_SOUND_MIXER_READ_LINE; 667 extern unsigned IOCTL_SOUND_MIXER_READ_LOUD; 668 extern unsigned IOCTL_SOUND_MIXER_READ_MIC; 669 extern unsigned IOCTL_SOUND_MIXER_READ_MUTE; 670 extern unsigned IOCTL_SOUND_MIXER_READ_OGAIN; 671 extern unsigned IOCTL_SOUND_MIXER_READ_PCM; 672 extern unsigned IOCTL_SOUND_MIXER_READ_RECLEV; 673 extern unsigned IOCTL_SOUND_MIXER_READ_RECMASK; 674 extern unsigned IOCTL_SOUND_MIXER_READ_RECSRC; 675 extern unsigned IOCTL_SOUND_MIXER_READ_SPEAKER; 676 extern unsigned IOCTL_SOUND_MIXER_READ_STEREODEVS; 677 extern unsigned IOCTL_SOUND_MIXER_READ_SYNTH; 678 extern unsigned IOCTL_SOUND_MIXER_READ_TREBLE; 679 extern unsigned IOCTL_SOUND_MIXER_READ_VOLUME; 680 extern unsigned IOCTL_SOUND_MIXER_WRITE_ALTPCM; 681 extern unsigned IOCTL_SOUND_MIXER_WRITE_BASS; 682 extern unsigned IOCTL_SOUND_MIXER_WRITE_CD; 683 extern unsigned IOCTL_SOUND_MIXER_WRITE_ENHANCE; 684 extern unsigned IOCTL_SOUND_MIXER_WRITE_IGAIN; 685 extern unsigned IOCTL_SOUND_MIXER_WRITE_IMIX; 686 extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE1; 687 extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE2; 688 extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE3; 689 extern unsigned IOCTL_SOUND_MIXER_WRITE_LINE; 690 extern unsigned IOCTL_SOUND_MIXER_WRITE_LOUD; 691 extern unsigned IOCTL_SOUND_MIXER_WRITE_MIC; 692 extern unsigned IOCTL_SOUND_MIXER_WRITE_MUTE; 693 extern unsigned IOCTL_SOUND_MIXER_WRITE_OGAIN; 694 extern unsigned IOCTL_SOUND_MIXER_WRITE_PCM; 695 extern unsigned IOCTL_SOUND_MIXER_WRITE_RECLEV; 696 extern unsigned IOCTL_SOUND_MIXER_WRITE_RECSRC; 697 extern unsigned IOCTL_SOUND_MIXER_WRITE_SPEAKER; 698 extern unsigned IOCTL_SOUND_MIXER_WRITE_SYNTH; 699 extern unsigned IOCTL_SOUND_MIXER_WRITE_TREBLE; 700 extern unsigned IOCTL_SOUND_MIXER_WRITE_VOLUME; 701 extern unsigned IOCTL_SOUND_PCM_READ_BITS; 702 extern unsigned IOCTL_SOUND_PCM_READ_CHANNELS; 703 extern unsigned IOCTL_SOUND_PCM_READ_FILTER; 704 extern unsigned IOCTL_SOUND_PCM_READ_RATE; 705 extern unsigned IOCTL_SOUND_PCM_WRITE_CHANNELS; 706 extern unsigned IOCTL_SOUND_PCM_WRITE_FILTER; 707 extern unsigned IOCTL_TCFLSH; 708 extern unsigned IOCTL_TCGETA; 709 extern unsigned IOCTL_TCGETS; 710 extern unsigned IOCTL_TCSBRK; 711 extern unsigned IOCTL_TCSBRKP; 712 extern unsigned IOCTL_TCSETA; 713 extern unsigned IOCTL_TCSETAF; 714 extern unsigned IOCTL_TCSETAW; 715 extern unsigned IOCTL_TCSETS; 716 extern unsigned IOCTL_TCSETSF; 717 extern unsigned IOCTL_TCSETSW; 718 extern unsigned IOCTL_TCXONC; 719 extern unsigned IOCTL_TIOCGLCKTRMIOS; 720 extern unsigned IOCTL_TIOCGSOFTCAR; 721 extern unsigned IOCTL_TIOCINQ; 722 extern unsigned IOCTL_TIOCLINUX; 723 extern unsigned IOCTL_TIOCSERCONFIG; 724 extern unsigned IOCTL_TIOCSERGETLSR; 725 extern unsigned IOCTL_TIOCSERGWILD; 726 extern unsigned IOCTL_TIOCSERSWILD; 727 extern unsigned IOCTL_TIOCSLCKTRMIOS; 728 extern unsigned IOCTL_TIOCSSOFTCAR; 729 extern unsigned IOCTL_VT_ACTIVATE; 730 extern unsigned IOCTL_VT_DISALLOCATE; 731 extern unsigned IOCTL_VT_GETMODE; 732 extern unsigned IOCTL_VT_GETSTATE; 733 extern unsigned IOCTL_VT_OPENQRY; 734 extern unsigned IOCTL_VT_RELDISP; 735 extern unsigned IOCTL_VT_RESIZE; 736 extern unsigned IOCTL_VT_RESIZEX; 737 extern unsigned IOCTL_VT_SENDSIG; 738 extern unsigned IOCTL_VT_SETMODE; 739 extern unsigned IOCTL_VT_WAITACTIVE; 740#endif 741#if SANITIZER_LINUX && !SANITIZER_ANDROID 742 extern unsigned IOCTL_CYGETDEFTHRESH; 743 extern unsigned IOCTL_CYGETDEFTIMEOUT; 744 extern unsigned IOCTL_CYGETMON; 745 extern unsigned IOCTL_CYGETTHRESH; 746 extern unsigned IOCTL_CYGETTIMEOUT; 747 extern unsigned IOCTL_CYSETDEFTHRESH; 748 extern unsigned IOCTL_CYSETDEFTIMEOUT; 749 extern unsigned IOCTL_CYSETTHRESH; 750 extern unsigned IOCTL_CYSETTIMEOUT; 751 extern unsigned IOCTL_EQL_EMANCIPATE; 752 extern unsigned IOCTL_EQL_ENSLAVE; 753 extern unsigned IOCTL_EQL_GETMASTRCFG; 754 extern unsigned IOCTL_EQL_GETSLAVECFG; 755 extern unsigned IOCTL_EQL_SETMASTRCFG; 756 extern unsigned IOCTL_EQL_SETSLAVECFG; 757 extern unsigned IOCTL_EVIOCGKEYCODE_V2; 758 extern unsigned IOCTL_EVIOCGPROP; 759 extern unsigned IOCTL_EVIOCSKEYCODE_V2; 760 extern unsigned IOCTL_FS_IOC_GETFLAGS; 761 extern unsigned IOCTL_FS_IOC_GETVERSION; 762 extern unsigned IOCTL_FS_IOC_SETFLAGS; 763 extern unsigned IOCTL_FS_IOC_SETVERSION; 764 extern unsigned IOCTL_GIO_CMAP; 765 extern unsigned IOCTL_GIO_FONT; 766 extern unsigned IOCTL_GIO_SCRNMAP; 767 extern unsigned IOCTL_GIO_UNIMAP; 768 extern unsigned IOCTL_GIO_UNISCRNMAP; 769 extern unsigned IOCTL_KDADDIO; 770 extern unsigned IOCTL_KDDELIO; 771 extern unsigned IOCTL_KDDISABIO; 772 extern unsigned IOCTL_KDENABIO; 773 extern unsigned IOCTL_KDGETKEYCODE; 774 extern unsigned IOCTL_KDGETLED; 775 extern unsigned IOCTL_KDGETMODE; 776 extern unsigned IOCTL_KDGKBDIACR; 777 extern unsigned IOCTL_KDGKBENT; 778 extern unsigned IOCTL_KDGKBLED; 779 extern unsigned IOCTL_KDGKBMETA; 780 extern unsigned IOCTL_KDGKBMODE; 781 extern unsigned IOCTL_KDGKBSENT; 782 extern unsigned IOCTL_KDGKBTYPE; 783 extern unsigned IOCTL_KDMAPDISP; 784 extern unsigned IOCTL_KDMKTONE; 785 extern unsigned IOCTL_KDSETKEYCODE; 786 extern unsigned IOCTL_KDSETLED; 787 extern unsigned IOCTL_KDSETMODE; 788 extern unsigned IOCTL_KDSIGACCEPT; 789 extern unsigned IOCTL_KDSKBDIACR; 790 extern unsigned IOCTL_KDSKBENT; 791 extern unsigned IOCTL_KDSKBLED; 792 extern unsigned IOCTL_KDSKBMETA; 793 extern unsigned IOCTL_KDSKBMODE; 794 extern unsigned IOCTL_KDSKBSENT; 795 extern unsigned IOCTL_KDUNMAPDISP; 796 extern unsigned IOCTL_KIOCSOUND; 797 extern unsigned IOCTL_LPABORT; 798 extern unsigned IOCTL_LPABORTOPEN; 799 extern unsigned IOCTL_LPCAREFUL; 800 extern unsigned IOCTL_LPCHAR; 801 extern unsigned IOCTL_LPGETIRQ; 802 extern unsigned IOCTL_LPGETSTATUS; 803 extern unsigned IOCTL_LPRESET; 804 extern unsigned IOCTL_LPSETIRQ; 805 extern unsigned IOCTL_LPTIME; 806 extern unsigned IOCTL_LPWAIT; 807 extern unsigned IOCTL_MTIOCGETCONFIG; 808 extern unsigned IOCTL_MTIOCSETCONFIG; 809 extern unsigned IOCTL_PIO_CMAP; 810 extern unsigned IOCTL_PIO_FONT; 811 extern unsigned IOCTL_PIO_SCRNMAP; 812 extern unsigned IOCTL_PIO_UNIMAP; 813 extern unsigned IOCTL_PIO_UNIMAPCLR; 814 extern unsigned IOCTL_PIO_UNISCRNMAP; 815 extern unsigned IOCTL_SCSI_IOCTL_GET_IDLUN; 816 extern unsigned IOCTL_SCSI_IOCTL_PROBE_HOST; 817 extern unsigned IOCTL_SCSI_IOCTL_TAGGED_DISABLE; 818 extern unsigned IOCTL_SCSI_IOCTL_TAGGED_ENABLE; 819 extern unsigned IOCTL_SIOCAIPXITFCRT; 820 extern unsigned IOCTL_SIOCAIPXPRISLT; 821 extern unsigned IOCTL_SIOCAX25ADDUID; 822 extern unsigned IOCTL_SIOCAX25DELUID; 823 extern unsigned IOCTL_SIOCAX25GETPARMS; 824 extern unsigned IOCTL_SIOCAX25GETUID; 825 extern unsigned IOCTL_SIOCAX25NOUID; 826 extern unsigned IOCTL_SIOCAX25SETPARMS; 827 extern unsigned IOCTL_SIOCDEVPLIP; 828 extern unsigned IOCTL_SIOCIPXCFGDATA; 829 extern unsigned IOCTL_SIOCNRDECOBS; 830 extern unsigned IOCTL_SIOCNRGETPARMS; 831 extern unsigned IOCTL_SIOCNRRTCTL; 832 extern unsigned IOCTL_SIOCNRSETPARMS; 833 extern unsigned IOCTL_SNDCTL_DSP_GETISPACE; 834 extern unsigned IOCTL_SNDCTL_DSP_GETOSPACE; 835 extern unsigned IOCTL_TIOCGSERIAL; 836 extern unsigned IOCTL_TIOCSERGETMULTI; 837 extern unsigned IOCTL_TIOCSERSETMULTI; 838 extern unsigned IOCTL_TIOCSSERIAL; 839#endif 840 841} // namespace __sanitizer 842 843#endif 844 845