| ... | ... | @@ -10537,6 +10537,131 @@ pub const sendfile = switch (native_os) { |
| 10537 | 10537 | pub extern "c" fn getauxval(type: c_ulong) c_ulong; |
| 10538 | 10538 | pub extern "c" fn elf_aux_info(aux: c_int, buf: *anyopaque, buflen: c_int) c_int; |
| 10539 | 10539 | |
| 10540 | pub const HWCAP = switch (native_os) { |
| 10541 | .freebsd => switch (native_arch) { |
| 10542 | // FreeBSD deliberately matches the Linux ABI for AT_HWCAP... |
| 10543 | else => std.os.linux.HWCAP, |
| 10544 | // ... but because Linux went the SYS_riscv_hwprobe route, FreeBSD |
| 10545 | // defines more bits than Linux does: |
| 10546 | .riscv64 => struct { |
| 10547 | pub const ISA_A = 1 << 0; |
| 10548 | pub const ISA_B = 1 << 1; |
| 10549 | pub const ISA_C = 1 << 2; |
| 10550 | pub const ISA_D = 1 << 3; |
| 10551 | pub const ISA_F = 1 << 5; |
| 10552 | pub const ISA_H = 1 << 7; |
| 10553 | pub const ISA_I = 1 << 8; |
| 10554 | pub const ISA_M = 1 << 12; |
| 10555 | pub const ISA_V = 1 << 21; |
| 10556 | }, |
| 10557 | }, |
| 10558 | .illumos => switch (native_arch) { |
| 10559 | .x86, .x86_64 => struct { |
| 10560 | pub const FPU = 1 << 0; |
| 10561 | pub const TSC = 1 << 1; |
| 10562 | pub const CX8 = 1 << 2; |
| 10563 | pub const SEP = 1 << 3; |
| 10564 | pub const AMD_SYSC = 1 << 4; |
| 10565 | pub const CMOV = 1 << 5; |
| 10566 | pub const MMX = 1 << 6; |
| 10567 | pub const AMD_MMX = 1 << 7; |
| 10568 | pub const AMD_3DNow = 1 << 8; |
| 10569 | pub const AMD_3DNowx = 1 << 9; |
| 10570 | pub const FXSR = 1 << 10; |
| 10571 | pub const SSE = 1 << 11; |
| 10572 | pub const SSE2 = 1 << 12; |
| 10573 | pub const PAUSE = 1 << 13; |
| 10574 | pub const SSE3 = 1 << 14; |
| 10575 | pub const MON = 1 << 15; |
| 10576 | pub const CX16 = 1 << 16; |
| 10577 | pub const AHF = 1 << 17; |
| 10578 | pub const TSCP = 1 << 18; |
| 10579 | pub const AMD_SSE4A = 1 << 19; |
| 10580 | pub const POPCNT = 1 << 20; |
| 10581 | pub const AMD_LZCNT = 1 << 21; |
| 10582 | pub const SSSE3 = 1 << 22; |
| 10583 | pub const SSE4_1 = 1 << 23; |
| 10584 | pub const SSE4_2 = 1 << 24; |
| 10585 | pub const MOVBE = 1 << 25; |
| 10586 | pub const AES = 1 << 26; |
| 10587 | pub const PCLMULQDQ = 1 << 27; |
| 10588 | pub const XSAVE = 1 << 28; |
| 10589 | pub const AVX = 1 << 29; |
| 10590 | pub const VMX = 1 << 30; |
| 10591 | pub const AMD_SVM = 1 << 31; |
| 10592 | |
| 10593 | pub const @"2" = struct { |
| 10594 | pub const F16C = 1 << 0; |
| 10595 | pub const RDRAND = 1 << 1; |
| 10596 | pub const BMI1 = 1 << 2; |
| 10597 | pub const BMI2 = 1 << 3; |
| 10598 | pub const FMA = 1 << 4; |
| 10599 | pub const AVX2 = 1 << 5; |
| 10600 | pub const ADX = 1 << 6; |
| 10601 | pub const RDSEED = 1 << 7; |
| 10602 | pub const AVX512F = 1 << 8; |
| 10603 | pub const AVX512DQ = 1 << 9; |
| 10604 | pub const AVX512IFMA = 1 << 10; |
| 10605 | pub const AVX512PF = 1 << 11; |
| 10606 | pub const AVX512ER = 1 << 12; |
| 10607 | pub const AVX512CD = 1 << 13; |
| 10608 | pub const AVX512BW = 1 << 14; |
| 10609 | pub const AVX512VL = 1 << 15; |
| 10610 | pub const AVX512VBMI = 1 << 16; |
| 10611 | pub const AVX512VPOPCDQ = 1 << 17; |
| 10612 | pub const AVX512_4NNIW = 1 << 18; |
| 10613 | pub const AVX512_4FMAPS = 1 << 19; |
| 10614 | pub const SHA = 1 << 20; |
| 10615 | pub const FSGSBASE = 1 << 21; |
| 10616 | pub const CLFLUSHOPT = 1 << 22; |
| 10617 | pub const CLWB = 1 << 23; |
| 10618 | pub const MONITORX = 1 << 24; |
| 10619 | pub const CLZERO = 1 << 25; |
| 10620 | pub const AVX512_VNNI = 1 << 26; |
| 10621 | pub const VPCLMULQDQ = 1 << 27; |
| 10622 | pub const VAES = 1 << 28; |
| 10623 | }; |
| 10624 | }, |
| 10625 | else => struct {}, |
| 10626 | }, |
| 10627 | .linux => std.os.linux.HWCAP, |
| 10628 | .openbsd => switch (native_arch) { |
| 10629 | // Same deal as for FreeBSD. |
| 10630 | else => std.os.linux.HWCAP, |
| 10631 | .riscv64 => struct { |
| 10632 | pub const ISA_A = 1 << 0; |
| 10633 | pub const ISA_B = 1 << 1; |
| 10634 | pub const ISA_C = 1 << 2; |
| 10635 | pub const ISA_D = 1 << 3; |
| 10636 | pub const ISA_F = 1 << 5; |
| 10637 | pub const ISA_H = 1 << 7; |
| 10638 | pub const ISA_I = 1 << 8; |
| 10639 | pub const ISA_M = 1 << 12; |
| 10640 | pub const ISA_V = 1 << 21; |
| 10641 | |
| 10642 | pub const @"2" = struct { |
| 10643 | pub const ISA_ZBA = 1 << 0; |
| 10644 | pub const ISA_ZBB = 1 << 1; |
| 10645 | pub const ISA_ZBC = 1 << 2; |
| 10646 | pub const ISA_ZBS = 1 << 3; |
| 10647 | pub const ISA_ZFH = 1 << 4; |
| 10648 | pub const ISA_ZKT = 1 << 5; |
| 10649 | pub const ISA_ZVBB = 1 << 6; |
| 10650 | pub const ISA_ZVBC = 1 << 7; |
| 10651 | pub const ISA_ZVFH = 1 << 8; |
| 10652 | pub const ISA_ZVKG = 1 << 9; |
| 10653 | pub const ISA_ZVKNED = 1 << 10; |
| 10654 | pub const ISA_ZVKNHA = 1 << 11; |
| 10655 | pub const ISA_ZVKNHB = 1 << 12; |
| 10656 | pub const ISA_ZVKSED = 1 << 13; |
| 10657 | pub const ISA_ZVKSH = 1 << 14; |
| 10658 | pub const ISA_ZVKT = 1 << 15; |
| 10659 | }; |
| 10660 | }, |
| 10661 | }, |
| 10662 | else => struct {}, |
| 10663 | }; |
| 10664 | |
| 10540 | 10665 | pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*anyopaque) c_int; |
| 10541 | 10666 | |
| 10542 | 10667 | pub const sigaltstack = switch (native_os) { |