Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions libc-test/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3480,6 +3480,10 @@ fn test_linux(target: &str) {
return true;
}
}
if name.starts_with("X86_FEATURE_")
{
return true
}
match name {
// These constants are not available if gnu headers have been included
// and can therefore not be tested here
Expand Down
65 changes: 65 additions & 0 deletions src/unix/linux_like/linux/arch/generic/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,71 @@ cfg_if! {
target_arch = "aarch64"))] {
pub const FICLONE: ::c_ulong = 0x40049409;
pub const FICLONERANGE: ::c_ulong = 0x4020940D;
// getauxval bits flags - from asm/cpufeatures.h kernel header
pub const X86_FEATURE_FPU: ::c_ulong = 0;
pub const X86_FEATURE_TSC: ::c_ulong = 4;
pub const X86_FEATURE_CX8: ::c_ulong = 8;
pub const X86_FEATURE_CLFLUSH: ::c_ulong = 19;
pub const X86_FEATURE_MMX: ::c_ulong = 23;
pub const X86_FEATURE_AES: ::c_ulong = 128 + 25;
pub const X86_FEATURE_ERMS: ::c_ulong = 288 + 9;
pub const X86_FEATURE_F16C: ::c_ulong = 128 + 29;
pub const X86_FEATURE_FMA4: ::c_ulong = 160 + 16;
pub const X86_FEATURE_FMA: ::c_ulong = 128 + 12;
pub const X86_FEATURE_VAES: ::c_ulong = 512 + 9;
pub const X86_FEATURE_VPCLMULQDQ: ::c_ulong = 512 + 10;
pub const X86_FEATURE_BMI1: ::c_ulong = 288 + 3;
pub const X86_FEATURE_HLE: ::c_ulong = 288 + 4;
pub const X86_FEATURE_BMI2: ::c_ulong = 288 + 8;
pub const X86_FEATURE_RTM: ::c_ulong = 288 + 11;
pub const X86_FEATURE_RDSEED: ::c_ulong = 288 + 18;
pub const X86_FEATURE_CLFLUSHOPT: ::c_ulong = 288 + 23;
pub const X86_FEATURE_CLWB: ::c_ulong = 288 + 24;
pub const X86_FEATURE_XMM: ::c_ulong = 25;
pub const X86_FEATURE_XMM2: ::c_ulong = 26;
pub const X86_FEATURE_XMM3: ::c_ulong = 128 + 0;
pub const X86_FEATURE_SSSE3: ::c_ulong = 128 + 9;
pub const X86_FEATURE_XMM4_1: ::c_ulong = 128 + 19;
pub const X86_FEATURE_XMM4_2: ::c_ulong = 128 + 20;
pub const X86_FEATURE_SSE4A: ::c_ulong = 160 + 6;
pub const X86_FEATURE_AVX: ::c_ulong = 128 + 28;
pub const X86_FEATURE_AVX_VNNI: ::c_ulong = 384 + 4;
pub const X86_FEATURE_AVX2: ::c_ulong = 288 + 5;
pub const X86_FEATURE_AVX512F: ::c_ulong = 288 + 16;
pub const X86_FEATURE_AVX512DQ: ::c_ulong = 288 + 17;
pub const X86_FEATURE_AVX512IFMA: ::c_ulong = 288 + 21;
pub const X86_FEATURE_AVX512PF: ::c_ulong = 288 + 26;
pub const X86_FEATURE_AVX512ER: ::c_ulong = 288 + 27;
pub const X86_FEATURE_AVX512CD: ::c_ulong = 288 + 28;
pub const X86_FEATURE_AVX512BW: ::c_ulong = 288 + 30;
pub const X86_FEATURE_AVX512VL: ::c_ulong = 288 + 31;
pub const X86_FEATURE_AVX512_BF16: ::c_ulong = 384 + 5;
pub const X86_FEATURE_AVX512_VBMI2: ::c_ulong = 512 + 6;
pub const X86_FEATURE_AVX512_VNNI: ::c_ulong = 512 + 11;
pub const X86_FEATURE_AVX512_BITALG: ::c_ulong = 512 + 12;
pub const X86_FEATURE_AVX512_VPOPCNTDQ: ::c_ulong = 512 + 14;
pub const X86_FEATURE_AVX512_4VNNIW: ::c_ulong = 576 + 2;
pub const X86_FEATURE_AVX512_4FMAPS: ::c_ulong = 576 + 3;
pub const X86_FEATURE_AVX512_VP2INTERSECT: ::c_ulong = 576 + 8;
pub const X86_FEATURE_AVX512_FP16: ::c_ulong = 576 + 23;
pub const X86_FEATURE_AMX_BF16: ::c_ulong = 576 + 22;
pub const X86_FEATURE_AMX_TILE: ::c_ulong = 576 + 24;
pub const X86_FEATURE_AMX_INT8: ::c_ulong = 576 + 25;
pub const X86_FEATURE_PCLMULQDQ: ::c_ulong = 128 + 1;
pub const X86_FEATURE_SMX: ::c_ulong = 128 + 6;
pub const X86_FEATURE_SGX: ::c_ulong = 288 + 2;
pub const X86_FEATURE_CX16: ::c_ulong = 128 + 13;
pub const X86_FEATURE_SHA_NI: ::c_ulong = 288 + 29;
pub const X86_FEATURE_POPCNT: ::c_ulong = 128 + 23;
pub const X86_FEATURE_MOVBE: ::c_ulong = 128 + 22;
pub const X86_FEATURE_RDRAND: ::c_ulong = 128 + 30;
pub const X86_FEATURE_DCA: ::c_ulong = 128 + 18;
pub const X86_FEATURE_SSBD: ::c_ulong = 224 + 17;
pub const X86_FEATURE_ADX: ::c_ulong = 288 + 19;
pub const X86_FEATURE_ABM: ::c_ulong = 160 + 5;
pub const X86_FEATURE_GFNI: ::c_ulong = 512 + 8;
pub const X86_FEATURE_MOVDIRI: ::c_ulong = 512 + 27;
pub const X86_FEATURE_MOVDIR64B: ::c_ulong = 512 + 28;
}
}
// pub const SO_PREFER_BUSY_POLL: ::c_int = 69;
Expand Down