From 4951b14611978fc687dcb59d5420bf298dd496d9 Mon Sep 17 00:00:00 2001 From: Alex Lyn Date: Mon, 13 Jul 2026 10:15:28 +0800 Subject: [PATCH] kata-types: Add support for capability of block discard/unmap To tells if the hypervisor exposes block discard/unmap support to the guest, we introduce a new capability of discard/unmap named `BlockDeviceDiscardSupport` in the capability set. Signed-off-by: Alex Lyn --- src/libs/kata-types/src/capabilities.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/libs/kata-types/src/capabilities.rs b/src/libs/kata-types/src/capabilities.rs index cf3d847b5e..caaefe704e 100644 --- a/src/libs/kata-types/src/capabilities.rs +++ b/src/libs/kata-types/src/capabilities.rs @@ -21,6 +21,8 @@ pub enum CapabilityBits { HybridVsockSupport, /// hypervisor supports memory hotplug probe interface GuestMemoryProbe, + /// hypervisor supports exposing block discard/unmap to the guest + BlockDeviceDiscardSupport, } /// Capabilities describe a virtcontainers hypervisor capabilities through a bit mask. @@ -83,6 +85,12 @@ impl Capabilities { pub fn is_mem_hotplug_probe_supported(&self) -> bool { self.flags.and(CapabilityBits::GuestMemoryProbe) != 0 } + + /// is_block_device_discard_supported tells if the hypervisor exposes + /// block discard/unmap support to the guest. + pub fn is_block_device_discard_supported(&self) -> bool { + self.flags.and(CapabilityBits::BlockDeviceDiscardSupport) != 0 + } } #[cfg(test)] @@ -133,5 +141,8 @@ mod tests { cap.add(CapabilityBits::GuestMemoryProbe); assert!(cap.is_mem_hotplug_probe_supported()); assert!(cap.is_fs_sharing_supported()); + // test block discard capability + cap.add(CapabilityBits::BlockDeviceDiscardSupport); + assert!(cap.is_block_device_discard_supported()); } }