crosvm/hypervisor
Pierre-Clément Tosi 150255a1a8 aarch64: Validate PsciVersion during instantiation
The PSCI standard defines a PSCI version as a 32-bit non-negative signed
integer but one is currently being built from a 64-bit unsigned value.
Add a constructor and implement TryFrom<u32>::try_from() to encapsulate
those conditions being checked in the struct's impl.

Provide a macro wrapping the constructor for compile-time constant
versions.

Make PsciVersion Ord to allow comparison again versions of interest.

Reject cases where KVM reports versions of PSCI that are currently not
supported by crosvm.

BUG=b:227142928
TEST=tools/dev_container tools/run_tests --target=vm:aarch64
TEST=booted a protected VM from the AOSP fork

Change-Id: I2989f4703b1d18970aff396cda0b6a63ca0f6e4f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3560155
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andrew Walbran <qwandor@google.com>
Commit-Queue: Pierre-Clément Tosi <ptosi@google.com>
2022-04-05 13:26:22 +00:00
..
src aarch64: Validate PsciVersion during instantiation 2022-04-05 13:26:22 +00:00
Cargo.toml Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00