mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-10 12:09:31 +00:00
A proposed set of kernel patches makes it possible to map anonymous MAP_SHARED mappings into the IPA space of a virtual machine with MTE enabled. With these patches we can use most features of crosvm with the exception of pmem which relies on being able to make file mappings in the IPA space. Therefore, we make MTE an opt-in feature via the --mte command line argument and forbid specifying --mte together with --pmem-device or --rw-pmem-device. Bug: b:234779841 Change-Id: I70bf2d0a8c1aff7c5956d6009ca5169a623bc6b2 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3892141 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Auto-Submit: Peter Collingbourne <pcc@chromium.org> Commit-Queue: Peter Collingbourne <pcc@chromium.org>
48 lines
1.8 KiB
Bash
Executable file
48 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Copyright 2022 The ChromiumOS Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
#
|
|
# Regenerate kvm_sys bindgen bindings.
|
|
|
|
set -euo pipefail
|
|
cd "$(dirname "${BASH_SOURCE[0]}")/.."
|
|
|
|
source tools/impl/bindgen-common.sh
|
|
|
|
KVM_EXTRAS="// TODO(pcc): Remove this when Chrome OS updates its kernel.
|
|
pub const KVM_CAP_ARM_MTE: u32 = 205;
|
|
// Added by kvm_sys/bindgen.sh
|
|
pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4;
|
|
pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u64 = 0x1;
|
|
// TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required.
|
|
pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191;
|
|
// TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID.
|
|
pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
|
|
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
|
|
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
|
|
pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;"
|
|
|
|
bindgen_generate \
|
|
--raw-line "${KVM_EXTRAS}" \
|
|
--blocklist-item='__kernel.*' \
|
|
--blocklist-item='__BITS_PER_LONG' \
|
|
--blocklist-item='__FD_SETSIZE' \
|
|
--blocklist-item='_?IOC.*' \
|
|
"${BINDGEN_LINUX_X86_HEADERS}/include/linux/kvm.h" \
|
|
-- \
|
|
-isystem "${BINDGEN_LINUX_X86_HEADERS}/include" \
|
|
| replace_linux_int_types \
|
|
> kvm_sys/src/x86/bindings.rs
|
|
|
|
bindgen_generate \
|
|
--raw-line "${KVM_EXTRAS}" \
|
|
--blocklist-item='__kernel.*' \
|
|
--blocklist-item='__BITS_PER_LONG' \
|
|
--blocklist-item='__FD_SETSIZE' \
|
|
--blocklist-item='_?IOC.*' \
|
|
"${BINDGEN_LINUX_ARM64_HEADERS}/include/linux/kvm.h" \
|
|
-- \
|
|
-isystem "${BINDGEN_LINUX_ARM64_HEADERS}/include" \
|
|
| replace_linux_int_types \
|
|
> kvm_sys/src/aarch64/bindings.rs
|