...
Source file
src/internal/cpu/cpu_arm64_darwin.go
1
2
3
4
5
6
7 package cpu
8
9 import _ "unsafe"
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 ARM64.HasSHA512 = sysctlEnabled([]byte("hw.optional.armv8_2_sha512\x00"))
15 ARM64.HasDIT = sysctlEnabled([]byte("hw.optional.arm.FEAT_DIT\x00"))
16
17
18
19
20
21 ARM64.HasAES = true
22 ARM64.HasPMULL = true
23 ARM64.HasSHA1 = true
24 ARM64.HasSHA2 = true
25 }
26
27
28 func getsysctlbyname(name []byte) (int32, int32)
29
30
31
32
33
34
35
36
37
38
39
40 func sysctlEnabled(name []byte) bool {
41 ret, value := getsysctlbyname(name)
42 if ret < 0 {
43 return false
44 }
45 return value > 0
46 }
47
View as plain text