package cpu
Import Path
golang.org/x/sys/cpu (on go.dev)
Dependency Relation
imports 5 packages, and imported by 3 packages
Involved Source Files
byteorder.go
Package cpu implements processor feature detection for
various CPU architectures.
cpu_gc_x86.go
cpu_linux_noinit.go
cpu_x86.go
endian_little.go
hwcap_linux.go
parse.go
runtime_auxv.go
runtime_auxv_go121.go
cpu_x86.s
Package-Level Type Names (total 5, in which 1 is exported)
CacheLinePad is used to pad structs to avoid false sharing.
Package-Level Functions (total 14, none are exported)
Package-Level Variables (total 11, in which 7 are exported)
ARM contains the supported CPU features of the current ARM (32-bit) platform.
All feature flags are false if:
1. the current platform is not arm, or
2. the current operating system is not Linux.
ARM64 contains the supported CPU features of the
current ARMv8(aarch64) platform. If the current platform
is not arm64 then all feature flags are false.
Initialized reports whether the CPU features were initialized.
For some GOOS/GOARCH combinations initialization of the CPU features depends
on reading an operating specific file, e.g. /proc/self/auxv on linux/arm
Initialized will report false if reading the file fails.
MIPS64X contains the supported CPU features of the current mips64/mips64le
platforms. If the current platform is not mips64/mips64le or the current
operating system is not Linux then all feature flags are false.
PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms.
If the current platform is not ppc64/ppc64le then all feature flags are false.
For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00,
since there are no optional categories. There are some exceptions that also
require kernel support to work (DARN, SCV), so there are feature bits for
those as well. The struct is padded to avoid false sharing.
S390X contains the supported CPU features of the current IBM Z
(s390x) platform. If the current platform is not IBM Z then all
feature flags are false.
S390X is padded to avoid false sharing. Further HasVX is only set
if the OS supports vector registers in addition to the STFLE
feature bit being set.
X86 contains the supported CPU features of the
current X86/AMD64 platform. If the current platform
is not X86/AMD64 then all feature flags are false.
X86 is padded to avoid false sharing. Further the HasAVX
and HasAVX2 are only set if the OS supports XMM and YMM
registers in addition to the CPUID feature bit being set.
Package-Level Constants (total 6, in which 1 is exported)
IsBigEndian records whether the GOARCH's byte order is big endian.
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |