diff --git a/pkg/sentry/devices/nvproxy/version.go b/pkg/sentry/devices/nvproxy/version.go index 3a59eb9be..f28e0948b 100644 --- a/pkg/sentry/devices/nvproxy/version.go +++ b/pkg/sentry/devices/nvproxy/version.go @@ -17,6 +17,7 @@ package nvproxy import ( "fmt" "reflect" + "sort" "strconv" "strings" @@ -722,6 +723,19 @@ func LatestDriver() DriverVersion { return ret } +// SupportedDrivers returns a list of all supported drivers. +// Precondition: Init() must have been called. +func SupportedDrivers() []DriverVersion { + var ret []DriverVersion + for version := range abis { + ret = append(ret, version) + } + sort.Slice(ret, func(i, j int) bool { + return !ret[i].isGreaterThan(ret[j]) + }) + return ret +} + // ExpectedDriverChecksum returns the expected checksum for a given version. // Precondition: Init() must have been called. func ExpectedDriverChecksum(version DriverVersion) (string, bool) { diff --git a/runsc/cmd/nvproxy/list_supported_drivers.go b/runsc/cmd/nvproxy/list_supported_drivers.go index 3fc43ae41..903d513fe 100644 --- a/runsc/cmd/nvproxy/list_supported_drivers.go +++ b/runsc/cmd/nvproxy/list_supported_drivers.go @@ -53,9 +53,9 @@ func (*listSupportedDrivers) Execute(ctx context.Context, f *flag.FlagSet, args return subcommands.ExitUsageError } - nvproxy.ForEachSupportDriver(func(version nvproxy.DriverVersion, _ string) { - fmt.Println(version) - }) + for _, d := range nvproxy.SupportedDrivers() { + fmt.Println(d) + } return subcommands.ExitSuccess }