Add a new generic container registry client via a new `container` package. Use this to create a command line utility as well as a new upload target for container registries. The code uses the github.com/containers/* project and packages to interact with container registires that is also used by skopeo, podman et al. One if the dependencies is `proglottis/gpgme` that is using cgo to bind libgpgme, so we have to add the corresponding devel package to the BuildRequires as well as installing it on CI. Checks will follow later via an integration test.
34 lines
820 B
Go
34 lines
820 B
Go
// Package cpuinfo gives runtime info about the current CPU.
|
|
//
|
|
// This is a very limited module meant for use internally
|
|
// in this project. For more versatile solution check
|
|
// https://github.com/klauspost/cpuid.
|
|
package cpuinfo
|
|
|
|
// HasBMI1 checks whether an x86 CPU supports the BMI1 extension.
|
|
func HasBMI1() bool {
|
|
return hasBMI1
|
|
}
|
|
|
|
// HasBMI2 checks whether an x86 CPU supports the BMI2 extension.
|
|
func HasBMI2() bool {
|
|
return hasBMI2
|
|
}
|
|
|
|
// DisableBMI2 will disable BMI2, for testing purposes.
|
|
// Call returned function to restore previous state.
|
|
func DisableBMI2() func() {
|
|
old := hasBMI2
|
|
hasBMI2 = false
|
|
return func() {
|
|
hasBMI2 = old
|
|
}
|
|
}
|
|
|
|
// HasBMI checks whether an x86 CPU supports both BMI1 and BMI2 extensions.
|
|
func HasBMI() bool {
|
|
return HasBMI1() && HasBMI2()
|
|
}
|
|
|
|
var hasBMI1 bool
|
|
var hasBMI2 bool
|