cubefs

Форк
0
36 строк · 1.1 Кб
1
// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file.
2

3
//go:build (386 && !gccgo && !noasm && !appengine) || (amd64 && !gccgo && !noasm && !appengine)
4
// +build 386,!gccgo,!noasm,!appengine amd64,!gccgo,!noasm,!appengine
5

6
package cpuid
7

8
func asmCpuid(op uint32) (eax, ebx, ecx, edx uint32)
9
func asmCpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32)
10
func asmXgetbv(index uint32) (eax, edx uint32)
11
func asmRdtscpAsm() (eax, ebx, ecx, edx uint32)
12
func asmDarwinHasAVX512() bool
13

14
func initCPU() {
15
	cpuid = asmCpuid
16
	cpuidex = asmCpuidex
17
	xgetbv = asmXgetbv
18
	rdtscpAsm = asmRdtscpAsm
19
	darwinHasAVX512 = asmDarwinHasAVX512
20
}
21

22
func addInfo(c *CPUInfo, safe bool) {
23
	c.maxFunc = maxFunctionID()
24
	c.maxExFunc = maxExtendedFunction()
25
	c.BrandName = brandName()
26
	c.CacheLine = cacheLine()
27
	c.Family, c.Model, c.Stepping = familyModel()
28
	c.featureSet = support()
29
	c.SGX = hasSGX(c.featureSet.inSet(SGX), c.featureSet.inSet(SGXLC))
30
	c.ThreadsPerCore = threadsPerCore()
31
	c.LogicalCores = logicalCores()
32
	c.PhysicalCores = physicalCores()
33
	c.VendorID, c.VendorString = vendorID()
34
	c.cacheSize()
35
	c.frequencies()
36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.