• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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