No description
Find a file
Alexandre Courbot 91ff1282b4 virtio: video: decoder: add SyncEventQueue
So far we were using EventQueue in a very simple and controlled manner ;
but efficient decoding patterns are more complex than that and we are
soon going to need to keep references to the queue from remote corners
of the code and post events from there, which requires mutable access.

To help with this, add a SyncEventQueue type that is essentially an
EventQueue wrapped into a Mutex, which allows us to make its methods
non-mut.

BUG=b:169295147
TEST=v4l2r's simple_decoder can decode a H.264 stream.

Change-Id: Ife94629ab2382eb0aac5786ba24373c66b80efc7
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3782035
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-07-29 12:26:03 +00:00
.cargo crosvm: Fix cross-compile in dev container 2022-07-19 17:07:49 +00:00
.devcontainer Update cloud storage locations to use crosvm-infra project 2022-07-29 02:17:15 +00:00
.github Reland "github: Minimize dependencies for document generation" 2022-04-12 22:30:10 +00:00
aarch64 vmwdt: Update the fdt node 2022-07-28 08:59:30 +00:00
acpi_tables Reformat imports 2022-07-28 00:15:50 +00:00
anti_tamper crosvm: upstream windows src 2022-07-19 20:58:59 +00:00
arch Reformat imports 2022-07-28 00:15:50 +00:00
argh_helpers crosvm: move run command to argh 2022-06-13 23:55:20 +00:00
base Reformat imports 2022-07-28 00:15:50 +00:00
bin Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
bit_field Reformat imports 2022-07-28 00:15:50 +00:00
broker_ipc Reformat imports 2022-07-28 00:15:50 +00:00
ci/kokoro ci: skip choco checksum 2022-07-13 17:21:48 +00:00
common Reformat imports 2022-07-28 00:15:50 +00:00
cros_async Reformat imports 2022-07-28 00:15:50 +00:00
crosvm-fuzz Reformat imports 2022-07-28 00:15:50 +00:00
crosvm_control Reformat imports 2022-07-28 00:15:50 +00:00
crosvm_plugin Reformat imports 2022-07-28 00:15:50 +00:00
devices virtio: video: decoder: add SyncEventQueue 2022-07-29 12:26:03 +00:00
disk Reformat imports 2022-07-28 00:15:50 +00:00
docs/book Updating documentation for building crosvm. 2022-07-27 20:54:20 +00:00
fuse Reformat imports 2022-07-28 00:15:50 +00:00
gpu_display Reformat imports 2022-07-28 00:15:50 +00:00
hypervisor Reformat imports 2022-07-28 00:15:50 +00:00
infra infra: Public API docs at /doc instead of /api 2022-07-29 01:12:44 +00:00
integration_tests Update cloud storage locations to use crosvm-infra project 2022-07-29 02:17:15 +00:00
io_uring Reformat imports 2022-07-28 00:15:50 +00:00
kernel_cmdline Reformat imports 2022-07-28 00:15:50 +00:00
kernel_loader Reformat imports 2022-07-28 00:15:50 +00:00
kvm Reformat imports 2022-07-28 00:15:50 +00:00
kvm_sys Reformat imports 2022-07-28 00:15:50 +00:00
libcras_stub crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
linux_input_sys Reformat imports 2022-07-28 00:15:50 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media Reformat imports 2022-07-28 00:15:50 +00:00
metrics Reformat imports 2022-07-28 00:15:50 +00:00
net_sys Reformat imports 2022-07-28 00:15:50 +00:00
net_util Reformat imports 2022-07-28 00:15:50 +00:00
power_monitor Reformat imports 2022-07-28 00:15:50 +00:00
protos Reformat imports 2022-07-28 00:15:50 +00:00
qcow_utils Reformat imports 2022-07-28 00:15:50 +00:00
resources devices: vvu: support shared memory regions 2022-07-28 06:25:30 +00:00
rutabaga_gfx Reformat imports 2022-07-28 00:15:50 +00:00
seccomp devices: wl: initialize gralloc after sandboxing 2022-07-27 01:54:48 +00:00
serde_keyvalue Reformat imports 2022-07-28 00:15:50 +00:00
src audio: Remove audio cfg requirement for VhostUserSnd frontend 2022-07-29 06:04:31 +00:00
system_api_stub crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
tests Reformat imports 2022-07-28 00:15:50 +00:00
third_party devices: vvu: support backend request channel 2022-07-28 04:54:40 +00:00
tools Update cloud storage locations to use crosvm-infra project 2022-07-29 02:17:15 +00:00
tpm2 Reformat imports 2022-07-28 00:15:50 +00:00
tpm2-sys tpm2-sys: build libtpm2 with -Wno-error 2022-07-28 00:26:00 +00:00
tracing tracing: Add noop tracing 2022-06-16 21:13:55 +00:00
tube_transporter Reformat imports 2022-07-28 00:15:50 +00:00
usb_sys Reformat imports 2022-07-28 00:15:50 +00:00
usb_util Reformat imports 2022-07-28 00:15:50 +00:00
vfio_sys Revert "direct_irq: Add support for host wakeup capable IRQs" 2022-05-19 14:28:46 +00:00
vhost Reformat imports 2022-07-28 00:15:50 +00:00
virtio_sys Reformat imports 2022-07-28 00:15:50 +00:00
vm_control Reformat imports 2022-07-28 00:15:50 +00:00
vm_memory devices: vvu: support shared memory regions 2022-07-28 06:25:30 +00:00
win_audio Reformat imports 2022-07-28 00:15:50 +00:00
win_util Reformat imports 2022-07-28 00:15:50 +00:00
x86_64 Reformat imports 2022-07-28 00:15:50 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.gitignore infra: Initial setup of linux pre/post-submit builders 2022-05-24 23:13:13 +00:00
.gitmodules Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
.rustfmt.toml rustfmt, win_util: update to 2021 edition 2022-05-31 23:35:02 +00:00
ARCHITECTURE.md base: replace PollToken with EventToken tree-wide 2022-06-02 22:30:38 +00:00
Cargo.toml devices: vvu: support shared memory regions 2022-07-28 06:25:30 +00:00
CONTRIBUTING.md crosvm: Make commands work. 2022-07-22 02:05:48 +00:00
LICENSE add LICENSE and README 2017-04-17 14:06:21 -07:00
navbar.md docs: Use mdformat to format markdown files 2022-01-27 21:29:11 +00:00
OWNERS OWNERS: Add comments 2022-07-05 10:34:14 +00:00
PRESUBMIT.cfg Switch main crosvm repo 2022-07-14 17:58:26 +00:00
README.chromeos.md Add documentation for ChromeOS workflows 2022-04-18 19:05:49 +00:00
README.md Switch main crosvm repo 2022-07-14 17:58:26 +00:00
run_tests Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
rust-toolchain rust-toolchain: update to 1.60.0 2022-07-28 17:46:00 +00:00
setup_cros_cargo.sh Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
test_all Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
unblocked_terms.txt unblocked_terms.txt: clean up trivial cases 2021-04-26 20:32:38 +00:00

crosvm - The Chrome OS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linuxs KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the Chrome OS platform. Compared to QEMU, crosvm doesnt emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on Chrome OS devices.

Logo