Skip to content

Commit e15be47

Browse files
authored
Merge pull request #1638 from linkmauve/getauxval
Add missing AArch64 HWCAP_* and HWCAP2_* consts
2 parents c31e85f + c4e749f commit e15be47

File tree

2 files changed

+73
-1
lines changed

2 files changed

+73
-1
lines changed

src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs

+45
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,51 @@ pub const TCSAFLUSH: ::c_int = 2;
662662
pub const TIOCLINUX: ::c_ulong = 0x541C;
663663
pub const TIOCGSERIAL: ::c_ulong = 0x541E;
664664

665+
// sys/auxv.h
666+
pub const HWCAP_FP: ::c_ulong = 1 << 0;
667+
pub const HWCAP_ASIMD: ::c_ulong = 1 << 1;
668+
pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2;
669+
pub const HWCAP_AES: ::c_ulong = 1 << 3;
670+
pub const HWCAP_PMULL: ::c_ulong = 1 << 4;
671+
pub const HWCAP_SHA1: ::c_ulong = 1 << 5;
672+
pub const HWCAP_SHA2: ::c_ulong = 1 << 6;
673+
pub const HWCAP_CRC32: ::c_ulong = 1 << 7;
674+
pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8;
675+
pub const HWCAP_FPHP: ::c_ulong = 1 << 9;
676+
pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10;
677+
pub const HWCAP_CPUID: ::c_ulong = 1 << 11;
678+
pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12;
679+
pub const HWCAP_JSCVT: ::c_ulong = 1 << 13;
680+
pub const HWCAP_FCMA: ::c_ulong = 1 << 14;
681+
pub const HWCAP_LRCPC: ::c_ulong = 1 << 15;
682+
pub const HWCAP_DCPOP: ::c_ulong = 1 << 16;
683+
pub const HWCAP_SHA3: ::c_ulong = 1 << 17;
684+
pub const HWCAP_SM3: ::c_ulong = 1 << 18;
685+
pub const HWCAP_SM4: ::c_ulong = 1 << 19;
686+
pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20;
687+
pub const HWCAP_SHA512: ::c_ulong = 1 << 21;
688+
pub const HWCAP_SVE: ::c_ulong = 1 << 22;
689+
pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23;
690+
pub const HWCAP_DIT: ::c_ulong = 1 << 24;
691+
pub const HWCAP_USCAT: ::c_ulong = 1 << 25;
692+
pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26;
693+
pub const HWCAP_FLAGM: ::c_ulong = 1 << 27;
694+
pub const HWCAP_SSBS: ::c_ulong = 1 << 28;
695+
pub const HWCAP_SB: ::c_ulong = 1 << 29;
696+
pub const HWCAP_PACA: ::c_ulong = 1 << 30;
697+
pub const HWCAP_PACG: ::c_ulong = 1 << 31;
698+
// TODO: enable these again once linux-api-headers are up to date enough on CI.
699+
// See discussion in https://github.com/rust-lang/libc/pull/1638
700+
//pub const HWCAP2_DCPODP: ::c_ulong = 1 << 0;
701+
//pub const HWCAP2_SVE2: ::c_ulong = 1 << 1;
702+
//pub const HWCAP2_SVEAES: ::c_ulong = 1 << 2;
703+
//pub const HWCAP2_SVEPMULL: ::c_ulong = 1 << 3;
704+
//pub const HWCAP2_SVEBITPERM: ::c_ulong = 1 << 4;
705+
//pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5;
706+
//pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6;
707+
//pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7;
708+
//pub const HWCAP2_FRINT: ::c_ulong = 1 << 8;
709+
665710
// Syscall table
666711
pub const SYS_io_setup: ::c_long = 0;
667712
pub const SYS_io_destroy: ::c_long = 1;

src/unix/linux_like/linux/gnu/mod.rs

+28-1
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,33 @@ pub const STATX_ATTR_NODUMP: ::c_int = 0x0040;
874874
pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800;
875875
pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000;
876876

877+
// sys/auxv.h
878+
pub const AT_NULL: ::c_ulong = 0;
879+
pub const AT_IGNORE: ::c_ulong = 1;
880+
pub const AT_EXECFD: ::c_ulong = 2;
881+
pub const AT_PHDR: ::c_ulong = 3;
882+
pub const AT_PHENT: ::c_ulong = 4;
883+
pub const AT_PHNUM: ::c_ulong = 5;
884+
pub const AT_PAGESZ: ::c_ulong = 6;
885+
pub const AT_BASE: ::c_ulong = 7;
886+
pub const AT_FLAGS: ::c_ulong = 8;
887+
pub const AT_ENTRY: ::c_ulong = 9;
888+
pub const AT_NOTELF: ::c_ulong = 10;
889+
pub const AT_UID: ::c_ulong = 11;
890+
pub const AT_EUID: ::c_ulong = 12;
891+
pub const AT_GID: ::c_ulong = 13;
892+
pub const AT_EGID: ::c_ulong = 14;
893+
pub const AT_PLATFORM: ::c_ulong = 15;
894+
pub const AT_HWCAP: ::c_ulong = 16;
895+
pub const AT_CLKTCK: ::c_ulong = 17;
896+
// AT_* values 18 through 22 are reserved
897+
pub const AT_SECURE: ::c_ulong = 23;
898+
pub const AT_BASE_PLATFORM: ::c_ulong = 24;
899+
pub const AT_RANDOM: ::c_ulong = 25;
900+
pub const AT_HWCAP2: ::c_ulong = 26;
901+
902+
pub const AT_EXECFN: ::c_ulong = 31;
903+
877904
cfg_if! {
878905
if #[cfg(any(
879906
target_arch = "arm",
@@ -978,6 +1005,7 @@ extern "C" {
9781005
needle: *const ::c_void,
9791006
needlelen: ::size_t,
9801007
) -> *mut ::c_void;
1008+
pub fn getauxval(type_: ::c_ulong) -> ::c_ulong;
9811009
}
9821010

9831011
#[link(name = "util")]
@@ -1031,7 +1059,6 @@ extern "C" {
10311059
pub fn sched_getcpu() -> ::c_int;
10321060
pub fn mallinfo() -> ::mallinfo;
10331061
pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t;
1034-
pub fn getauxval(type_: ::c_ulong) -> ::c_ulong;
10351062
#[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")]
10361063
#[cfg_attr(target_os = "solaris", link_name = "__posix_getpwent_r")]
10371064
pub fn getpwent_r(

0 commit comments

Comments
 (0)