1 // Copyright 2021 The ChromiumOS Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 use vmm_vhost::message::VhostUserProtocolFeatures; 6 7 use crate::virtio::vhost::user::vmm::Connection; 8 use crate::virtio::vhost::user::vmm::QueueSizes; 9 use crate::virtio::vhost::user::vmm::Result; 10 use crate::virtio::vhost::user::vmm::VhostUserVirtioDevice; 11 use crate::virtio::DeviceType; 12 13 const QUEUE_SIZE: u16 = 256; 14 const QUEUE_COUNT: usize = 2; 15 16 impl VhostUserVirtioDevice { new_mac80211_hwsim( base_features: u64, connection: Connection, ) -> Result<VhostUserVirtioDevice>17 pub fn new_mac80211_hwsim( 18 base_features: u64, 19 connection: Connection, 20 ) -> Result<VhostUserVirtioDevice> { 21 let queue_sizes = QueueSizes::AskDevice { 22 queue_size: QUEUE_SIZE, 23 default_queues: QUEUE_COUNT, 24 }; 25 let max_queues = QUEUE_COUNT; 26 27 let allow_features = 0; 28 29 let allow_protocol_features = VhostUserProtocolFeatures::empty(); 30 31 VhostUserVirtioDevice::new( 32 connection, 33 DeviceType::Mac80211HwSim, 34 queue_sizes, 35 max_queues, 36 allow_features, 37 allow_protocol_features, 38 base_features, 39 None, 40 false, 41 ) 42 } 43 } 44