summary refs log tree commit diff
path: root/src/linux.rs
diff options
context:
space:
mode:
authorDylan Reid <dgreid@chromium.org>2019-01-07 10:33:48 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-01-26 10:43:21 -0800
commit3082e8e48d73a4cf98b33052247d0ddb0d411111 (patch)
tree2c1d48e64e83e29a7c4ee0c06a13d5a9ae8019ee /src/linux.rs
parentb58b5529403c1d86a74cd973abf5796a9da4c348 (diff)
downloadcrosvm-3082e8e48d73a4cf98b33052247d0ddb0d411111.tar
crosvm-3082e8e48d73a4cf98b33052247d0ddb0d411111.tar.gz
crosvm-3082e8e48d73a4cf98b33052247d0ddb0d411111.tar.bz2
crosvm-3082e8e48d73a4cf98b33052247d0ddb0d411111.tar.lz
crosvm-3082e8e48d73a4cf98b33052247d0ddb0d411111.tar.xz
crosvm-3082e8e48d73a4cf98b33052247d0ddb0d411111.tar.zst
crosvm-3082e8e48d73a4cf98b33052247d0ddb0d411111.zip
linux: add ac97 to the pci bus
Add an ac97 device that plays audio to /dev/null.

BUG=chromium:781398
TEST=Test crosvm with null device

Change-Id: I3849974b732fc1550ec2bf0f805726bf2ca296f6
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1398641
Commit-Ready: Chih-Yang Hsia <paulhsia@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Tested-by: Chih-Yang Hsia <paulhsia@chromium.org>
Reviewed-by: Chih-Yang Hsia <paulhsia@chromium.org>
Diffstat (limited to 'src/linux.rs')
-rw-r--r--src/linux.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/linux.rs b/src/linux.rs
index 4b684ca..8c33d12 100644
--- a/src/linux.rs
+++ b/src/linux.rs
@@ -21,6 +21,7 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
 
 use libc::{self, c_int};
 
+use audio_streams::DummyStreamSource;
 use byteorder::{ByteOrder, LittleEndian};
 use devices::{self, PciDevice, VirtioPciDevice};
 use io_jail::{self, Minijail};
@@ -632,6 +633,20 @@ fn create_virtio_devs(
         pci_devices.push((pci_dev, stub.jail));
     }
 
+    if cfg.null_audio {
+        let null_audio_box = Box::new(devices::Ac97Dev::new(
+            (*mem).clone(),
+            Box::new(DummyStreamSource::new()),
+        ));
+        let null_audio_jail = if cfg.multiprocess {
+            let policy_path: PathBuf = cfg.seccomp_policy_dir.join("null_audio_device.policy");
+            Some(create_base_minijail(empty_root_path, &policy_path)?)
+        } else {
+            None
+        };
+        pci_devices.push((null_audio_box, null_audio_jail));
+    }
+
     Ok(pci_devices)
 }