diff --git a/src/vmm/src/devices/virtio/balloon/device.rs b/src/vmm/src/devices/virtio/balloon/device.rs index 9205808a7fd..186f09275bc 100644 --- a/src/vmm/src/devices/virtio/balloon/device.rs +++ b/src/vmm/src/devices/virtio/balloon/device.rs @@ -25,7 +25,7 @@ use super::{ }; use crate::devices::virtio::balloon::BalloonError; use crate::devices::virtio::device::{IrqTrigger, IrqType}; -use crate::devices::virtio::generated::virtio_blk::VIRTIO_F_VERSION_1; +use crate::devices::virtio::generated::virtio_config::VIRTIO_F_VERSION_1; use crate::logger::IncMetric; use crate::utils::u64_to_usize; use crate::vstate::memory::{Address, ByteValued, Bytes, GuestAddress, GuestMemoryMmap}; diff --git a/src/vmm/src/devices/virtio/block/vhost_user/device.rs b/src/vmm/src/devices/virtio/block/vhost_user/device.rs index 34948035c6b..c9907744080 100644 --- a/src/vmm/src/devices/virtio/block/vhost_user/device.rs +++ b/src/vmm/src/devices/virtio/block/vhost_user/device.rs @@ -15,9 +15,8 @@ use vmm_sys_util::eventfd::EventFd; use super::{NUM_QUEUES, QUEUE_SIZE, VhostUserBlockError}; use crate::devices::virtio::block::CacheType; use crate::devices::virtio::device::{DeviceState, IrqTrigger, IrqType, VirtioDevice}; -use crate::devices::virtio::generated::virtio_blk::{ - VIRTIO_BLK_F_FLUSH, VIRTIO_BLK_F_RO, VIRTIO_F_VERSION_1, -}; +use crate::devices::virtio::generated::virtio_blk::{VIRTIO_BLK_F_FLUSH, VIRTIO_BLK_F_RO}; +use crate::devices::virtio::generated::virtio_config::VIRTIO_F_VERSION_1; use crate::devices::virtio::generated::virtio_ring::VIRTIO_RING_F_EVENT_IDX; use crate::devices::virtio::queue::Queue; use crate::devices::virtio::vhost_user::{VhostUserHandleBackend, VhostUserHandleImpl}; diff --git a/src/vmm/src/devices/virtio/block/virtio/device.rs b/src/vmm/src/devices/virtio/block/virtio/device.rs index bb374bce5b9..e2b134a9f25 100644 --- a/src/vmm/src/devices/virtio/block/virtio/device.rs +++ b/src/vmm/src/devices/virtio/block/virtio/device.rs @@ -25,8 +25,9 @@ use crate::devices::virtio::block::CacheType; use crate::devices::virtio::block::virtio::metrics::{BlockDeviceMetrics, BlockMetricsPerDevice}; use crate::devices::virtio::device::{DeviceState, IrqTrigger, IrqType, VirtioDevice}; use crate::devices::virtio::generated::virtio_blk::{ - VIRTIO_BLK_F_FLUSH, VIRTIO_BLK_F_RO, VIRTIO_BLK_ID_BYTES, VIRTIO_F_VERSION_1, + VIRTIO_BLK_F_FLUSH, VIRTIO_BLK_F_RO, VIRTIO_BLK_ID_BYTES, }; +use crate::devices::virtio::generated::virtio_config::VIRTIO_F_VERSION_1; use crate::devices::virtio::generated::virtio_ring::VIRTIO_RING_F_EVENT_IDX; use crate::devices::virtio::queue::Queue; use crate::devices::virtio::{ActivateError, TYPE_BLOCK}; diff --git a/src/vmm/src/devices/virtio/generated/mod.rs b/src/vmm/src/devices/virtio/generated/mod.rs index b96b3e4efea..ab1a73dae7d 100644 --- a/src/vmm/src/devices/virtio/generated/mod.rs +++ b/src/vmm/src/devices/virtio/generated/mod.rs @@ -11,6 +11,6 @@ #![allow(non_snake_case)] pub mod virtio_blk; +pub mod virtio_config; pub mod virtio_net; pub mod virtio_ring; -pub mod virtio_rng; diff --git a/src/vmm/src/devices/virtio/generated/virtio_blk.rs b/src/vmm/src/devices/virtio/generated/virtio_blk.rs index 635861506cf..624ef389ccd 100644 --- a/src/vmm/src/devices/virtio/generated/virtio_blk.rs +++ b/src/vmm/src/devices/virtio/generated/virtio_blk.rs @@ -15,19 +15,6 @@ unsafe_op_in_unsafe_fn )] -pub const VIRTIO_F_NOTIFY_ON_EMPTY: u32 = 24; -pub const VIRTIO_F_ANY_LAYOUT: u32 = 27; -pub const VIRTIO_F_VERSION_1: u32 = 32; -pub const VIRTIO_F_ACCESS_PLATFORM: u32 = 33; -pub const VIRTIO_F_IOMMU_PLATFORM: u32 = 33; -pub const VIRTIO_F_RING_PACKED: u32 = 34; -pub const VIRTIO_F_IN_ORDER: u32 = 35; -pub const VIRTIO_F_ORDER_PLATFORM: u32 = 36; -pub const VIRTIO_F_SR_IOV: u32 = 37; -pub const VIRTIO_F_NOTIFICATION_DATA: u32 = 38; -pub const VIRTIO_F_NOTIF_CONFIG_DATA: u32 = 39; -pub const VIRTIO_F_RING_RESET: u32 = 40; -pub const VIRTIO_F_ADMIN_VQ: u32 = 41; pub const VIRTIO_BLK_F_SIZE_MAX: u32 = 1; pub const VIRTIO_BLK_F_SEG_MAX: u32 = 2; pub const VIRTIO_BLK_F_GEOMETRY: u32 = 4; diff --git a/src/vmm/src/devices/virtio/generated/virtio_rng.rs b/src/vmm/src/devices/virtio/generated/virtio_config.rs similarity index 100% rename from src/vmm/src/devices/virtio/generated/virtio_rng.rs rename to src/vmm/src/devices/virtio/generated/virtio_config.rs diff --git a/src/vmm/src/devices/virtio/generated/virtio_net.rs b/src/vmm/src/devices/virtio/generated/virtio_net.rs index 839cbd8b782..6d5adaac8f6 100644 --- a/src/vmm/src/devices/virtio/generated/virtio_net.rs +++ b/src/vmm/src/devices/virtio/generated/virtio_net.rs @@ -15,19 +15,6 @@ unsafe_op_in_unsafe_fn )] -pub const VIRTIO_F_NOTIFY_ON_EMPTY: u32 = 24; -pub const VIRTIO_F_ANY_LAYOUT: u32 = 27; -pub const VIRTIO_F_VERSION_1: u32 = 32; -pub const VIRTIO_F_ACCESS_PLATFORM: u32 = 33; -pub const VIRTIO_F_IOMMU_PLATFORM: u32 = 33; -pub const VIRTIO_F_RING_PACKED: u32 = 34; -pub const VIRTIO_F_IN_ORDER: u32 = 35; -pub const VIRTIO_F_ORDER_PLATFORM: u32 = 36; -pub const VIRTIO_F_SR_IOV: u32 = 37; -pub const VIRTIO_F_NOTIFICATION_DATA: u32 = 38; -pub const VIRTIO_F_NOTIF_CONFIG_DATA: u32 = 39; -pub const VIRTIO_F_RING_RESET: u32 = 40; -pub const VIRTIO_F_ADMIN_VQ: u32 = 41; pub const VIRTIO_NET_F_CSUM: u32 = 0; pub const VIRTIO_NET_F_GUEST_CSUM: u32 = 1; pub const VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: u32 = 2; diff --git a/src/vmm/src/devices/virtio/net/device.rs b/src/vmm/src/devices/virtio/net/device.rs index 38f6f7ee147..fff04d1da1a 100755 --- a/src/vmm/src/devices/virtio/net/device.rs +++ b/src/vmm/src/devices/virtio/net/device.rs @@ -16,7 +16,7 @@ use vmm_sys_util::eventfd::EventFd; use super::NET_QUEUE_MAX_SIZE; use crate::devices::virtio::device::{DeviceState, IrqTrigger, IrqType, VirtioDevice}; -use crate::devices::virtio::generated::virtio_blk::VIRTIO_F_VERSION_1; +use crate::devices::virtio::generated::virtio_config::VIRTIO_F_VERSION_1; use crate::devices::virtio::generated::virtio_net::{ VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GUEST_CSUM, VIRTIO_NET_F_GUEST_TSO4, VIRTIO_NET_F_GUEST_TSO6, VIRTIO_NET_F_GUEST_UFO, VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_TSO6, VIRTIO_NET_F_HOST_UFO, diff --git a/src/vmm/src/devices/virtio/rng/device.rs b/src/vmm/src/devices/virtio/rng/device.rs index 9c9021b66d9..97ac8676e0a 100644 --- a/src/vmm/src/devices/virtio/rng/device.rs +++ b/src/vmm/src/devices/virtio/rng/device.rs @@ -13,7 +13,7 @@ use super::metrics::METRICS; use super::{RNG_NUM_QUEUES, RNG_QUEUE}; use crate::devices::DeviceError; use crate::devices::virtio::device::{DeviceState, IrqTrigger, IrqType, VirtioDevice}; -use crate::devices::virtio::generated::virtio_rng::VIRTIO_F_VERSION_1; +use crate::devices::virtio::generated::virtio_config::VIRTIO_F_VERSION_1; use crate::devices::virtio::iov_deque::IovDequeError; use crate::devices::virtio::iovec::IoVecBufferMut; use crate::devices::virtio::queue::{FIRECRACKER_MAX_QUEUE_SIZE, Queue}; diff --git a/src/vmm/src/devices/virtio/vsock/device.rs b/src/vmm/src/devices/virtio/vsock/device.rs index 4626484ab2a..aa114f6cccb 100644 --- a/src/vmm/src/devices/virtio/vsock/device.rs +++ b/src/vmm/src/devices/virtio/vsock/device.rs @@ -31,6 +31,7 @@ use super::packet::{VSOCK_PKT_HDR_SIZE, VsockPacketRx, VsockPacketTx}; use super::{VsockBackend, defs}; use crate::devices::virtio::ActivateError; use crate::devices::virtio::device::{DeviceState, IrqTrigger, IrqType, VirtioDevice}; +use crate::devices::virtio::generated::virtio_config::{VIRTIO_F_IN_ORDER, VIRTIO_F_VERSION_1}; use crate::devices::virtio::queue::Queue as VirtQueue; use crate::devices::virtio::vsock::VsockError; use crate::devices::virtio::vsock::metrics::METRICS; @@ -49,7 +50,7 @@ pub(crate) const VIRTIO_VSOCK_EVENT_TRANSPORT_RESET: u32 = 0; /// - VIRTIO_F_IN_ORDER: the device returns used buffers in the same order that the driver makes /// them available. pub(crate) const AVAIL_FEATURES: u64 = - (1 << uapi::VIRTIO_F_VERSION_1 as u64) | (1 << uapi::VIRTIO_F_IN_ORDER as u64); + (1 << VIRTIO_F_VERSION_1 as u64) | (1 << VIRTIO_F_IN_ORDER as u64); /// Structure representing the vsock device. #[derive(Debug)] diff --git a/src/vmm/src/devices/virtio/vsock/mod.rs b/src/vmm/src/devices/virtio/vsock/mod.rs index fe338e95763..859e198860b 100644 --- a/src/vmm/src/devices/virtio/vsock/mod.rs +++ b/src/vmm/src/devices/virtio/vsock/mod.rs @@ -57,15 +57,6 @@ mod defs { pub mod uapi { - /// Virtio feature flags. - /// Defined in `/include/uapi/linux/virtio_config.h`. - /// - /// The device processes available buffers in the same order in which the device - /// offers them. - pub const VIRTIO_F_IN_ORDER: usize = 35; - /// The device conforms to the virtio spec version 1.0. - pub const VIRTIO_F_VERSION_1: u32 = 32; - /// Virtio vsock device ID. /// Defined in `include/uapi/linux/virtio_ids.h`. pub const VIRTIO_ID_VSOCK: u32 = 19; diff --git a/tools/bindgen.sh b/tools/bindgen.sh index 872b3427b67..86817a0561f 100755 --- a/tools/bindgen.sh +++ b/tools/bindgen.sh @@ -71,25 +71,22 @@ fc-bindgen \ --allowlist-var "VIRTIO_RING_F_EVENT_IDX" \ "$KERNEL_HEADERS_HOME/include/linux/virtio_ring.h" >src/vmm/src/devices/virtio/generated/virtio_ring.rs +info "BINDGEN virtio_config.h" +fc-bindgen \ + --allowlist-var "VIRTIO_F_.*" \ + "$KERNEL_HEADERS_HOME/include/linux/virtio_config.h" >src/vmm/src/devices/virtio/generated/virtio_config.rs + info "BINDGEN virtio_blk.h" fc-bindgen \ --allowlist-var "VIRTIO_BLK_.*" \ - --allowlist-var "VIRTIO_F_.*" \ "$KERNEL_HEADERS_HOME/include/linux/virtio_blk.h" >src/vmm/src/devices/virtio/generated/virtio_blk.rs info "BINDGEN virtio_net.h" fc-bindgen \ --allowlist-var "VIRTIO_NET_F_.*" \ - --allowlist-var "VIRTIO_F_.*" \ --allowlist-type "virtio_net_hdr_v1" \ "$KERNEL_HEADERS_HOME/include/linux/virtio_net.h" >src/vmm/src/devices/virtio/generated/virtio_net.rs -info "BINDGEN virtio_rng.h" -fc-bindgen \ - --allowlist-var "VIRTIO_RNG_.*" \ - --allowlist-var "VIRTIO_F_.*" \ - "$KERNEL_HEADERS_HOME/include/linux/virtio_rng.h" >src/vmm/src/devices/virtio/generated/virtio_rng.rs - info "BINDGEN prctl.h" fc-bindgen \ --allowlist-var "PR_.*" \