| ... | @@ -0,0 +1,635 @@ |
| 1 | // SPDX-License-Identifier: MIT |
| 2 | // Copyright (c) 2015-2021 Zig Contributors |
| 3 | // This file is part of [zig](https://ziglang.org/), which is MIT licensed. |
| 4 | // The MIT license requires this copyright notice to be included in all copies |
| 5 | // and substantial portions of the software. |
| 6 | |
| 7 | const std = @import("../../../std.zig"); |
| 8 | const linux = std.os.linux; |
| 9 | const socklen_t = linux.socklen_t; |
| 10 | const iovec = linux.iovec; |
| 11 | const iovec_const = linux.iovec_const; |
| 12 | const uid_t = linux.uid_t; |
| 13 | const gid_t = linux.gid_t; |
| 14 | const pid_t = linux.pid_t; |
| 15 | const stack_t = linux.stack_t; |
| 16 | const sigset_t = linux.sigset_t; |
| 17 | pub const SYS = extern enum(usize) { |
| 18 | restart_syscall = 0, |
| 19 | exit = 1, |
| 20 | fork = 2, |
| 21 | read = 3, |
| 22 | write = 4, |
| 23 | open = 5, |
| 24 | close = 6, |
| 25 | waitpid = 7, |
| 26 | creat = 8, |
| 27 | link = 9, |
| 28 | unlink = 10, |
| 29 | execve = 11, |
| 30 | chdir = 12, |
| 31 | time = 13, |
| 32 | mknod = 14, |
| 33 | chmod = 15, |
| 34 | lchown = 16, |
| 35 | @"break" = 17, |
| 36 | oldstat = 18, |
| 37 | lseek = 19, |
| 38 | getpid = 20, |
| 39 | mount = 21, |
| 40 | umount = 22, |
| 41 | setuid = 23, |
| 42 | getuid = 24, |
| 43 | stime = 25, |
| 44 | ptrace = 26, |
| 45 | alarm = 27, |
| 46 | oldfstat = 28, |
| 47 | pause = 29, |
| 48 | utime = 30, |
| 49 | stty = 31, |
| 50 | gtty = 32, |
| 51 | access = 33, |
| 52 | nice = 34, |
| 53 | ftime = 35, |
| 54 | sync = 36, |
| 55 | kill = 37, |
| 56 | rename = 38, |
| 57 | mkdir = 39, |
| 58 | rmdir = 40, |
| 59 | dup = 41, |
| 60 | pipe = 42, |
| 61 | times = 43, |
| 62 | prof = 44, |
| 63 | brk = 45, |
| 64 | setgid = 46, |
| 65 | getgid = 47, |
| 66 | signal = 48, |
| 67 | geteuid = 49, |
| 68 | getegid = 50, |
| 69 | acct = 51, |
| 70 | umount2 = 52, |
| 71 | lock = 53, |
| 72 | ioctl = 54, |
| 73 | fcntl = 55, |
| 74 | mpx = 56, |
| 75 | setpgid = 57, |
| 76 | ulimit = 58, |
| 77 | oldolduname = 59, |
| 78 | umask = 60, |
| 79 | chroot = 61, |
| 80 | ustat = 62, |
| 81 | dup2 = 63, |
| 82 | getppid = 64, |
| 83 | getpgrp = 65, |
| 84 | setsid = 66, |
| 85 | sigaction = 67, |
| 86 | sgetmask = 68, |
| 87 | ssetmask = 69, |
| 88 | setreuid = 70, |
| 89 | setregid = 71, |
| 90 | sigsuspend = 72, |
| 91 | sigpending = 73, |
| 92 | sethostname = 74, |
| 93 | setrlimit = 75, |
| 94 | getrlimit = 76, |
| 95 | getrusage = 77, |
| 96 | gettimeofday_time32 = 78, |
| 97 | settimeofday_time32 = 79, |
| 98 | getgroups = 80, |
| 99 | setgroups = 81, |
| 100 | select = 82, |
| 101 | symlink = 83, |
| 102 | oldlstat = 84, |
| 103 | readlink = 85, |
| 104 | uselib = 86, |
| 105 | swapon = 87, |
| 106 | reboot = 88, |
| 107 | readdir = 89, |
| 108 | mmap = 90, |
| 109 | munmap = 91, |
| 110 | truncate = 92, |
| 111 | ftruncate = 93, |
| 112 | fchmod = 94, |
| 113 | fchown = 95, |
| 114 | getpriority = 96, |
| 115 | setpriority = 97, |
| 116 | profil = 98, |
| 117 | statfs = 99, |
| 118 | fstatfs = 100, |
| 119 | ioperm = 101, |
| 120 | socketcall = 102, |
| 121 | syslog = 103, |
| 122 | setitimer = 104, |
| 123 | getitimer = 105, |
| 124 | stat = 106, |
| 125 | lstat = 107, |
| 126 | fstat = 108, |
| 127 | olduname = 109, |
| 128 | iopl = 110, |
| 129 | vhangup = 111, |
| 130 | idle = 112, |
| 131 | vm86 = 113, |
| 132 | wait4 = 114, |
| 133 | swapoff = 115, |
| 134 | sysinfo = 116, |
| 135 | ipc = 117, |
| 136 | fsync = 118, |
| 137 | sigreturn = 119, |
| 138 | clone = 120, |
| 139 | setdomainname = 121, |
| 140 | uname = 122, |
| 141 | modify_ldt = 123, |
| 142 | adjtimex = 124, |
| 143 | mprotect = 125, |
| 144 | sigprocmask = 126, |
| 145 | create_module = 127, |
| 146 | init_module = 128, |
| 147 | delete_module = 129, |
| 148 | get_kernel_syms = 130, |
| 149 | quotactl = 131, |
| 150 | getpgid = 132, |
| 151 | fchdir = 133, |
| 152 | bdflush = 134, |
| 153 | sysfs = 135, |
| 154 | personality = 136, |
| 155 | afs_syscall = 137, |
| 156 | setfsuid = 138, |
| 157 | setfsgid = 139, |
| 158 | _llseek = 140, |
| 159 | getdents = 141, |
| 160 | _newselect = 142, |
| 161 | flock = 143, |
| 162 | msync = 144, |
| 163 | readv = 145, |
| 164 | writev = 146, |
| 165 | getsid = 147, |
| 166 | fdatasync = 148, |
| 167 | _sysctl = 149, |
| 168 | mlock = 150, |
| 169 | munlock = 151, |
| 170 | mlockall = 152, |
| 171 | munlockall = 153, |
| 172 | sched_setparam = 154, |
| 173 | sched_getparam = 155, |
| 174 | sched_setscheduler = 156, |
| 175 | sched_getscheduler = 157, |
| 176 | sched_yield = 158, |
| 177 | sched_get_priority_max = 159, |
| 178 | sched_get_priority_min = 160, |
| 179 | sched_rr_get_interval = 161, |
| 180 | nanosleep = 162, |
| 181 | mremap = 163, |
| 182 | setresuid = 164, |
| 183 | getresuid = 165, |
| 184 | query_module = 166, |
| 185 | poll = 167, |
| 186 | nfsservctl = 168, |
| 187 | setresgid = 169, |
| 188 | getresgid = 170, |
| 189 | prctl = 171, |
| 190 | rt_sigreturn = 172, |
| 191 | rt_sigaction = 173, |
| 192 | rt_sigprocmask = 174, |
| 193 | rt_sigpending = 175, |
| 194 | rt_sigtimedwait = 176, |
| 195 | rt_sigqueueinfo = 177, |
| 196 | rt_sigsuspend = 178, |
| 197 | pread64 = 179, |
| 198 | pwrite64 = 180, |
| 199 | chown = 181, |
| 200 | getcwd = 182, |
| 201 | capget = 183, |
| 202 | capset = 184, |
| 203 | sigaltstack = 185, |
| 204 | sendfile = 186, |
| 205 | getpmsg = 187, |
| 206 | putpmsg = 188, |
| 207 | vfork = 189, |
| 208 | ugetrlimit = 190, |
| 209 | readahead = 191, |
| 210 | mmap2 = 192, |
| 211 | truncate64 = 193, |
| 212 | ftruncate64 = 194, |
| 213 | stat64 = 195, |
| 214 | lstat64 = 196, |
| 215 | fstat64 = 197, |
| 216 | pciconfig_read = 198, |
| 217 | pciconfig_write = 199, |
| 218 | pciconfig_iobase = 200, |
| 219 | multiplexer = 201, |
| 220 | getdents64 = 202, |
| 221 | pivot_root = 203, |
| 222 | fcntl64 = 204, |
| 223 | madvise = 205, |
| 224 | mincore = 206, |
| 225 | gettid = 207, |
| 226 | tkill = 208, |
| 227 | setxattr = 209, |
| 228 | lsetxattr = 210, |
| 229 | fsetxattr = 211, |
| 230 | getxattr = 212, |
| 231 | lgetxattr = 213, |
| 232 | fgetxattr = 214, |
| 233 | listxattr = 215, |
| 234 | llistxattr = 216, |
| 235 | flistxattr = 217, |
| 236 | removexattr = 218, |
| 237 | lremovexattr = 219, |
| 238 | fremovexattr = 220, |
| 239 | futex = 221, |
| 240 | sched_setaffinity = 222, |
| 241 | sched_getaffinity = 223, |
| 242 | tuxcall = 225, |
| 243 | sendfile64 = 226, |
| 244 | io_setup = 227, |
| 245 | io_destroy = 228, |
| 246 | io_getevents = 229, |
| 247 | io_submit = 230, |
| 248 | io_cancel = 231, |
| 249 | set_tid_address = 232, |
| 250 | fadvise64 = 233, |
| 251 | exit_group = 234, |
| 252 | lookup_dcookie = 235, |
| 253 | epoll_create = 236, |
| 254 | epoll_ctl = 237, |
| 255 | epoll_wait = 238, |
| 256 | remap_file_pages = 239, |
| 257 | timer_create = 240, |
| 258 | timer_settime32 = 241, |
| 259 | timer_gettime32 = 242, |
| 260 | timer_getoverrun = 243, |
| 261 | timer_delete = 244, |
| 262 | clock_settime32 = 245, |
| 263 | clock_gettime32 = 246, |
| 264 | clock_getres_time32 = 247, |
| 265 | clock_nanosleep_time32 = 248, |
| 266 | swapcontext = 249, |
| 267 | tgkill = 250, |
| 268 | utimes = 251, |
| 269 | statfs64 = 252, |
| 270 | fstatfs64 = 253, |
| 271 | fadvise64_64 = 254, |
| 272 | rtas = 255, |
| 273 | sys_debug_setcontext = 256, |
| 274 | migrate_pages = 258, |
| 275 | mbind = 259, |
| 276 | get_mempolicy = 260, |
| 277 | set_mempolicy = 261, |
| 278 | mq_open = 262, |
| 279 | mq_unlink = 263, |
| 280 | mq_timedsend = 264, |
| 281 | mq_timedreceive = 265, |
| 282 | mq_notify = 266, |
| 283 | mq_getsetattr = 267, |
| 284 | kexec_load = 268, |
| 285 | add_key = 269, |
| 286 | request_key = 270, |
| 287 | keyctl = 271, |
| 288 | waitid = 272, |
| 289 | ioprio_set = 273, |
| 290 | ioprio_get = 274, |
| 291 | inotify_init = 275, |
| 292 | inotify_add_watch = 276, |
| 293 | inotify_rm_watch = 277, |
| 294 | spu_run = 278, |
| 295 | spu_create = 279, |
| 296 | pselect6 = 280, |
| 297 | ppoll = 281, |
| 298 | unshare = 282, |
| 299 | splice = 283, |
| 300 | tee = 284, |
| 301 | vmsplice = 285, |
| 302 | openat = 286, |
| 303 | mkdirat = 287, |
| 304 | mknodat = 288, |
| 305 | fchownat = 289, |
| 306 | futimesat = 290, |
| 307 | fstatat64 = 291, |
| 308 | unlinkat = 292, |
| 309 | renameat = 293, |
| 310 | linkat = 294, |
| 311 | symlinkat = 295, |
| 312 | readlinkat = 296, |
| 313 | fchmodat = 297, |
| 314 | faccessat = 298, |
| 315 | get_robust_list = 299, |
| 316 | set_robust_list = 300, |
| 317 | move_pages = 301, |
| 318 | getcpu = 302, |
| 319 | epoll_pwait = 303, |
| 320 | utimensat = 304, |
| 321 | signalfd = 305, |
| 322 | timerfd_create = 306, |
| 323 | eventfd = 307, |
| 324 | sync_file_range2 = 308, |
| 325 | fallocate = 309, |
| 326 | subpage_prot = 310, |
| 327 | timerfd_settime32 = 311, |
| 328 | timerfd_gettime32 = 312, |
| 329 | signalfd4 = 313, |
| 330 | eventfd2 = 314, |
| 331 | epoll_create1 = 315, |
| 332 | dup3 = 316, |
| 333 | pipe2 = 317, |
| 334 | inotify_init1 = 318, |
| 335 | perf_event_open = 319, |
| 336 | preadv = 320, |
| 337 | pwritev = 321, |
| 338 | rt_tgsigqueueinfo = 322, |
| 339 | fanotify_init = 323, |
| 340 | fanotify_mark = 324, |
| 341 | prlimit64 = 325, |
| 342 | socket = 326, |
| 343 | bind = 327, |
| 344 | connect = 328, |
| 345 | listen = 329, |
| 346 | accept = 330, |
| 347 | getsockname = 331, |
| 348 | getpeername = 332, |
| 349 | socketpair = 333, |
| 350 | send = 334, |
| 351 | sendto = 335, |
| 352 | recv = 336, |
| 353 | recvfrom = 337, |
| 354 | shutdown = 338, |
| 355 | setsockopt = 339, |
| 356 | getsockopt = 340, |
| 357 | sendmsg = 341, |
| 358 | recvmsg = 342, |
| 359 | recvmmsg = 343, |
| 360 | accept4 = 344, |
| 361 | name_to_handle_at = 345, |
| 362 | open_by_handle_at = 346, |
| 363 | clock_adjtime = 347, |
| 364 | syncfs = 348, |
| 365 | sendmmsg = 349, |
| 366 | setns = 350, |
| 367 | process_vm_readv = 351, |
| 368 | process_vm_writev = 352, |
| 369 | finit_module = 353, |
| 370 | kcmp = 354, |
| 371 | sched_setattr = 355, |
| 372 | sched_getattr = 356, |
| 373 | renameat2 = 357, |
| 374 | seccomp = 358, |
| 375 | getrandom = 359, |
| 376 | memfd_create = 360, |
| 377 | bpf = 361, |
| 378 | execveat = 362, |
| 379 | switch_endian = 363, |
| 380 | userfaultfd = 364, |
| 381 | membarrier = 365, |
| 382 | mlock2 = 378, |
| 383 | copy_file_range = 379, |
| 384 | preadv2 = 380, |
| 385 | pwritev2 = 381, |
| 386 | kexec_file_load = 382, |
| 387 | statx = 383, |
| 388 | pkey_alloc = 384, |
| 389 | pkey_free = 385, |
| 390 | pkey_mprotect = 386, |
| 391 | rseq = 387, |
| 392 | io_pgetevents = 388, |
| 393 | semget = 393, |
| 394 | semctl = 394, |
| 395 | shmget = 395, |
| 396 | shmctl = 396, |
| 397 | shmat = 397, |
| 398 | shmdt = 398, |
| 399 | msgget = 399, |
| 400 | msgsnd = 400, |
| 401 | msgrcv = 401, |
| 402 | msgctl = 402, |
| 403 | clock_gettime64 = 403, |
| 404 | clock_settime64 = 404, |
| 405 | clock_adjtime64 = 405, |
| 406 | clock_getres_time64 = 406, |
| 407 | clock_nanosleep_time64 = 407, |
| 408 | timer_gettime64 = 408, |
| 409 | timer_settime64 = 409, |
| 410 | timerfd_gettime64 = 410, |
| 411 | timerfd_settime64 = 411, |
| 412 | utimensat_time64 = 412, |
| 413 | pselect6_time64 = 413, |
| 414 | ppoll_time64 = 414, |
| 415 | io_pgetevents_time64 = 416, |
| 416 | recvmmsg_time64 = 417, |
| 417 | mq_timedsend_time64 = 418, |
| 418 | mq_timedreceive_time64 = 419, |
| 419 | semtimedop_time64 = 420, |
| 420 | rt_sigtimedwait_time64 = 421, |
| 421 | futex_time64 = 422, |
| 422 | sched_rr_get_interval_time64 = 423, |
| 423 | pidfd_send_signal = 424, |
| 424 | io_uring_setup = 425, |
| 425 | io_uring_enter = 426, |
| 426 | io_uring_register = 427, |
| 427 | open_tree = 428, |
| 428 | move_mount = 429, |
| 429 | fsopen = 430, |
| 430 | fsconfig = 431, |
| 431 | fsmount = 432, |
| 432 | fspick = 433, |
| 433 | pidfd_open = 434, |
| 434 | clone3 = 435, |
| 435 | close_range = 436, |
| 436 | openat2 = 437, |
| 437 | pidfd_getfd = 438, |
| 438 | faccessat2 = 439, |
| 439 | process_madvise = 440, |
| 440 | }; |
| 441 | |
| 442 | pub const O_CREAT = 0o100; |
| 443 | pub const O_EXCL = 0o200; |
| 444 | pub const O_NOCTTY = 0o400; |
| 445 | pub const O_TRUNC = 0o1000; |
| 446 | pub const O_APPEND = 0o2000; |
| 447 | pub const O_NONBLOCK = 0o4000; |
| 448 | pub const O_DSYNC = 0o10000; |
| 449 | pub const O_SYNC = 0o4010000; |
| 450 | pub const O_RSYNC = 0o4010000; |
| 451 | pub const O_DIRECTORY = 0o40000; |
| 452 | pub const O_NOFOLLOW = 0o100000; |
| 453 | pub const O_CLOEXEC = 0o2000000; |
| 454 | |
| 455 | pub const O_ASYNC = 0o20000; |
| 456 | pub const O_DIRECT = 0o400000; |
| 457 | pub const O_LARGEFILE = 0o200000; |
| 458 | pub const O_NOATIME = 0o1000000; |
| 459 | pub const O_PATH = 0o10000000; |
| 460 | pub const O_TMPFILE = 0o20040000; |
| 461 | pub const O_NDELAY = O_NONBLOCK; |
| 462 | |
| 463 | pub const F_DUPFD = 0; |
| 464 | pub const F_GETFD = 1; |
| 465 | pub const F_SETFD = 2; |
| 466 | pub const F_GETFL = 3; |
| 467 | pub const F_SETFL = 4; |
| 468 | |
| 469 | pub const F_SETOWN = 8; |
| 470 | pub const F_GETOWN = 9; |
| 471 | pub const F_SETSIG = 10; |
| 472 | pub const F_GETSIG = 11; |
| 473 | |
| 474 | pub const F_GETLK = 12; |
| 475 | pub const F_SETLK = 13; |
| 476 | pub const F_SETLKW = 14; |
| 477 | |
| 478 | pub const F_SETOWN_EX = 15; |
| 479 | pub const F_GETOWN_EX = 16; |
| 480 | |
| 481 | pub const F_GETOWNER_UIDS = 17; |
| 482 | |
| 483 | pub const F_RDLCK = 0; |
| 484 | pub const F_WRLCK = 1; |
| 485 | pub const F_UNLCK = 2; |
| 486 | |
| 487 | pub const LOCK_SH = 1; |
| 488 | pub const LOCK_EX = 2; |
| 489 | pub const LOCK_UN = 8; |
| 490 | pub const LOCK_NB = 4; |
| 491 | |
| 492 | /// stack-like segment |
| 493 | pub const MAP_GROWSDOWN = 0x0100; |
| 494 | |
| 495 | /// ETXTBSY |
| 496 | pub const MAP_DENYWRITE = 0x0800; |
| 497 | |
| 498 | /// mark it as an executable |
| 499 | pub const MAP_EXECUTABLE = 0x1000; |
| 500 | |
| 501 | /// pages are locked |
| 502 | pub const MAP_LOCKED = 0x0080; |
| 503 | |
| 504 | /// don't check for reservations |
| 505 | pub const MAP_NORESERVE = 0x0040; |
| 506 | |
| 507 | pub const VDSO_CGT_SYM = "__kernel_clock_gettime"; |
| 508 | pub const VDSO_CGT_VER = "LINUX_2.6.15"; |
| 509 | |
| 510 | pub const Flock = extern struct { |
| 511 | l_type: i16, |
| 512 | l_whence: i16, |
| 513 | l_start: off_t, |
| 514 | l_len: off_t, |
| 515 | l_pid: pid_t, |
| 516 | }; |
| 517 | |
| 518 | pub const msghdr = extern struct { |
| 519 | msg_name: ?*sockaddr, |
| 520 | msg_namelen: socklen_t, |
| 521 | msg_iov: [*]iovec, |
| 522 | msg_iovlen: usize, |
| 523 | msg_control: ?*c_void, |
| 524 | msg_controllen: socklen_t, |
| 525 | msg_flags: i32, |
| 526 | }; |
| 527 | |
| 528 | pub const msghdr_const = extern struct { |
| 529 | msg_name: ?*const sockaddr, |
| 530 | msg_namelen: socklen_t, |
| 531 | msg_iov: [*]iovec_const, |
| 532 | msg_iovlen: usize, |
| 533 | msg_control: ?*c_void, |
| 534 | msg_controllen: socklen_t, |
| 535 | msg_flags: i32, |
| 536 | }; |
| 537 | |
| 538 | pub const blksize_t = i32; |
| 539 | pub const nlink_t = u32; |
| 540 | pub const time_t = i64; |
| 541 | pub const mode_t = u32; |
| 542 | pub const off_t = i64; |
| 543 | pub const ino_t = u64; |
| 544 | pub const dev_t = u64; |
| 545 | pub const blkcnt_t = i64; |
| 546 | |
| 547 | // The `stat` definition used by the Linux kernel. |
| 548 | pub const kernel_stat = extern struct { |
| 549 | dev: dev_t, |
| 550 | ino: ino_t, |
| 551 | mode: mode_t, |
| 552 | nlink: nlink_t, |
| 553 | uid: uid_t, |
| 554 | gid: gid_t, |
| 555 | rdev: dev_t, |
| 556 | __rdev_padding: i16, |
| 557 | size: off_t, |
| 558 | blksize: blksize_t, |
| 559 | blocks: blkcnt_t, |
| 560 | __atim32: timespec32, |
| 561 | __mtim32: timespec32, |
| 562 | __ctim32: timespec32, |
| 563 | __unused: [2]u32, |
| 564 | atim: timespec, |
| 565 | mtim: timespec, |
| 566 | ctim: timespec, |
| 567 | |
| 568 | const timespec32 = extern struct { |
| 569 | tv_sec: i32, |
| 570 | tv_nsec: i32, |
| 571 | }; |
| 572 | |
| 573 | pub fn atime(self: @This()) timespec { |
| 574 | return self.atim; |
| 575 | } |
| 576 | |
| 577 | pub fn mtime(self: @This()) timespec { |
| 578 | return self.mtim; |
| 579 | } |
| 580 | |
| 581 | pub fn ctime(self: @This()) timespec { |
| 582 | return self.ctim; |
| 583 | } |
| 584 | }; |
| 585 | |
| 586 | // The `stat64` definition used by the libc. |
| 587 | pub const libc_stat = kernel_stat; |
| 588 | |
| 589 | pub const timespec = extern struct { |
| 590 | tv_sec: time_t, |
| 591 | tv_nsec: isize, |
| 592 | }; |
| 593 | |
| 594 | pub const timeval = extern struct { |
| 595 | tv_sec: time_t, |
| 596 | tv_usec: isize, |
| 597 | }; |
| 598 | |
| 599 | pub const timezone = extern struct { |
| 600 | tz_minuteswest: i32, |
| 601 | tz_dsttime: i32, |
| 602 | }; |
| 603 | |
| 604 | pub const greg_t = u32; |
| 605 | pub const gregset_t = [48]greg_t; |
| 606 | pub const fpregset_t = [33]f64; |
| 607 | |
| 608 | pub const vrregset = extern struct { |
| 609 | vrregs: [32][4]u32, |
| 610 | vrsave: u32, |
| 611 | _pad: [2]u32, |
| 612 | vscr: u32, |
| 613 | }; |
| 614 | pub const vrregset_t = vrregset; |
| 615 | |
| 616 | pub const mcontext_t = extern struct { |
| 617 | gp_regs: gregset_t, |
| 618 | fp_regs: fpregset_t, |
| 619 | v_regs: vrregset_t align(16), |
| 620 | }; |
| 621 | |
| 622 | pub const ucontext_t = extern struct { |
| 623 | flags: u32, |
| 624 | link: *ucontext_t, |
| 625 | stack: stack_t, |
| 626 | pad: [7]i32, |
| 627 | regs: *mcontext_t, |
| 628 | sigmask: sigset_t, |
| 629 | pad2: [3]i32, |
| 630 | mcontext: mcontext_t, |
| 631 | }; |
| 632 | |
| 633 | pub const Elf_Symndx = u32; |
| 634 | |
| 635 | pub const MMAP2_UNIT = 4096; |