mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-18 14:54:19 +01:00
Change io/ioutil to io/os packages because io/ioutil package is deprecated from 1.16: Discard => io.Discard NopCloser => io.NopCloser ReadAll => io.ReadAll ReadDir => os.ReadDir ReadFile => os.ReadFile TempDir => os.MkdirTemp TempFile => os.CreateTemp WriteFile => os.WriteFile Details: https://go.dev/doc/go1.16#ioutil Fixes: #3265 Signed-off-by: bin <bin@hyper.sh>
30 lines
859 B
Go
30 lines
859 B
Go
// Copyright (c) 2021 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package virtcontainers
|
|
|
|
import "os"
|
|
|
|
// Implementation of this function is architecture specific
|
|
func availableGuestProtection() (guestProtection, error) {
|
|
flags, err := CPUFlags(procCPUInfo)
|
|
if err != nil {
|
|
return noneProtection, err
|
|
}
|
|
|
|
// TDX is supported and properly loaded when the firmware directory exists or `tdx` is part of the CPU flags
|
|
if d, err := os.Stat(tdxSysFirmwareDir); (err == nil && d.IsDir()) || flags[tdxCPUFlag] {
|
|
return tdxProtection, nil
|
|
}
|
|
// SEV is supported and enabled when the kvm module `sev` parameter is set to `1`
|
|
if _, err := os.Stat(sevKvmParameterPath); err == nil {
|
|
if c, err := os.ReadFile(sevKvmParameterPath); err == nil && len(c) > 0 && c[0] == '1' {
|
|
return sevProtection, nil
|
|
}
|
|
}
|
|
|
|
return noneProtection, nil
|
|
}
|