Source file
src/internal/cpu/cpu_arm64_darwin.go
1
2
3
4
5
6
7
8
9 package cpu
10
11 func osInit() {
12 ARM64.HasATOMICS = sysctlEnabled([]byte("hw.optional.armv8_1_atomics\x00"))
13 ARM64.HasCRC32 = sysctlEnabled([]byte("hw.optional.armv8_crc32\x00"))
14
15
16
17
18
19 ARM64.HasAES = true
20 ARM64.HasPMULL = true
21 ARM64.HasSHA1 = true
22 ARM64.HasSHA2 = true
23 }
24
25
26 func getsysctlbyname(name []byte) (int32, int32)
27
28 func sysctlEnabled(name []byte) bool {
29 ret, value := getsysctlbyname(name)
30 if ret < 0 {
31 return false
32 }
33 return value > 0
34 }
35
View as plain text