Commit Graph

886 Commits

Author SHA1 Message Date
Dorinda Bassey
1ccb3b6e58 sound/pipewire: add safety comments
Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2023-10-24 14:19:24 +05:30
dependabot[bot]
c6f586d507 build(deps): bump rust-vmm-ci from 9751aaa to 4c55aa7
Bumps [rust-vmm-ci](https://github.com/rust-vmm/rust-vmm-ci) from `9751aaa` to `4c55aa7`.
- [Commits](9751aaa0d0...4c55aa732b)

---
updated-dependencies:
- dependency-name: rust-vmm-ci
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 11:58:05 +05:30
dependabot[bot]
361cb51998 build(deps): bump the vhost-device group with 4 updates
Bumps the vhost-device group with 4 updates: [thiserror](https://github.com/dtolnay/thiserror), [hashbrown](https://github.com/rust-lang/hashbrown), [regex](https://github.com/rust-lang/regex) and [rustix](https://github.com/bytecodealliance/rustix).


Updates `thiserror` from 1.0.49 to 1.0.50
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.49...1.0.50)

Updates `hashbrown` from 0.14.1 to 0.14.2
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.14.1...v0.14.2)

Updates `regex` from 1.10.1 to 1.10.2
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.10.1...1.10.2)

Updates `rustix` from 0.38.19 to 0.38.20
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.19...v0.38.20)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: hashbrown
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: regex
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 11:50:23 +05:30
Dorinda Bassey
cae9fd0f79 sound/test: add testing module for sound
add testing modules

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2023-10-20 18:35:29 +05:30
Dorinda Bassey
d04d6b42fc sound: Return error if no memory configured
Add option to return error if no memory is configured

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2023-10-20 18:35:29 +05:30
Dorinda Bassey
ab33111ecb sound/Cargo.toml: update dependencies
Update dependencies and add support for xen builds

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2023-10-20 18:35:29 +05:30
Stefano Garzarella
994ffe1864 staging: add custom pipelines to run CI tests
Let's use custom pipelines to run CI tests in the nested worskpace.

We have included all the tests we usually run in the main workspace
(rust-vmm-ci/.buildkite/test_description.json), except for "commit-format"
which also covers commits for staging crates.

Let's add a `staging\coverage_config_x86_64.json` for testing coverage of
crates in staging.

All staging tests have `soft_fail = true` to prevent failures in staging
from affecting the CI of the main workspace.

Closes #478

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2023-10-17 16:35:55 +05:30
Alex Bennée
eabf93f3d5 README.md: clearer language on staging devices
Lets be super clear and explicit about what it takes to include a
backend in the repository as well as the minimum requirements for
being included in staging.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-16 20:17:21 +05:30
Viresh Kumar
114cbe456b
Merge pull request #475 from epilys/virtio-sound-pr-2
Add vhost-user-sound crate
2023-10-16 18:20:15 +05:30
Manos Pitsidianakis
eb2e2227e4
Move vhost-device-sound to staging workspace
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 14:58:40 +03:00
Manos Pitsidianakis
3a089149be
Move crates/sound to vhost-device-sound
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 14:56:03 +03:00
Manos Pitsidianakis
de1c308c62
Rename vhost-user-sound to vhost-device-sound
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 14:53:32 +03:00
Manos Pitsidianakis
d40c707f2f
Merge remote-tracking branch 'upstream/main' into HEAD
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 14:48:56 +03:00
Manos Pitsidianakis
a1e013286f Move all crates to workspace root
Having all the workspace crates under the crates/ directory is
unnecessary. Rust documentation itself recommends all crates to be in
the root directory:

https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html#creating-the-second-package-in-the-workspace

I paste the text content here, in case the online page ever changes or
becomes unavailable:

    ## Creating the Second Package in the Workspace

    Next, let’s create another member package in the workspace and call it add_one. Change the top-level Cargo.toml to specify the add_one path in the members list:

    Filename: Cargo.toml

    [workspace]

    members = [
        "adder",
        "add_one",
    ]

    Then generate a new library crate named add_one:

    $ cargo new add_one --lib
         Created library `add_one` package

    Your add directory should now have these directories and files:

    ├── Cargo.lock
    ├── Cargo.toml
    ├── add_one
    │   ├── Cargo.toml
    │   └── src
    │       └── lib.rs
    ├── adder
    │   ├── Cargo.toml
    │   └── src
    │       └── main.rs
    └── target

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 12:03:57 +05:30
dependabot[bot]
26e787a038 build(deps): bump the vhost-device group with 6 updates
Bumps the vhost-device group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [serde](https://github.com/serde-rs/serde) | `1.0.188` | `1.0.189` |
| [aho-corasick](https://github.com/BurntSushi/aho-corasick) | `1.1.1` | `1.1.2` |
| [async-trait](https://github.com/dtolnay/async-trait) | `0.1.73` | `0.1.74` |
| [regex](https://github.com/rust-lang/regex) | `1.9.6` | `1.10.1` |
| [rustix](https://github.com/bytecodealliance/rustix) | `0.38.17` | `0.38.19` |
| [winnow](https://github.com/winnow-rs/winnow) | `0.5.16` | `0.5.17` |


Updates `serde` from 1.0.188 to 1.0.189
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.188...v1.0.189)

Updates `aho-corasick` from 1.1.1 to 1.1.2
- [Commits](https://github.com/BurntSushi/aho-corasick/compare/1.1.1...1.1.2)

Updates `async-trait` from 0.1.73 to 0.1.74
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.73...0.1.74)

Updates `regex` from 1.9.6 to 1.10.1
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.9.6...1.10.1)

Updates `rustix` from 0.38.17 to 0.38.19
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.17...v0.38.19)

Updates `winnow` from 0.5.16 to 0.5.17
- [Changelog](https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md)
- [Commits](https://github.com/winnow-rs/winnow/compare/v0.5.16...v0.5.17)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: aho-corasick
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: async-trait
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: regex
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: winnow
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 11:58:26 +05:30
Manos Pitsidianakis
54b5db72e0 Add new workspace under staging/ subdirectory
Add a new workspace for devices that have no final specification merged
into the virtio spec.

Closes #459

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-11 16:25:00 +05:30
Erik Schilling
25cba8ea70 gpio: drop no-longer required unsafe Send/Sync impls
With the refactoring before this commit, `PhysDevice` is `Sync` and
`Send` automatically. So let's drop the unsafe impls to prevent future
type changes to result in unsound behaviour (again).

Fixes: #442
Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
2023-10-11 14:52:09 +05:30
Erik Schilling
2e4a344c8e gpio: disallow concurrent use on PhysLineState
RwLock allows multiple concurrent readers. libgpiod, however, does not
offer thread-safety for any function - even if they look like innocent
getters. Therefore, libgpiod objects do not implement `Sync`.

Now, `PhysDevice` is incorrectly marked as `Sync`, giving multiple threads
access to thw RwLock - resulting in unsafe behaviour.

We fix this by just turning the `RwLock` into a `Mutex`.

Issue: #442
Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
2023-10-11 14:52:09 +05:30
Erik Schilling
340a3f82dd gpio: guard libgpiod::Chip with Mutex
The Chip is not `Sync` (as wrongly claimed by the `Sync` marker on
`PhysDevice`). So if we want to share the `PhysDevice` across threads,
we will need to guard it by a `Mutex`.

These calls do not block for very long. So this should not cause any new
deadlock conditions.

Issue: #442
Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
2023-10-11 14:52:09 +05:30
Erik Schilling
bde810043d gpio: update libgpiod
This update marks some additional types `Send` and fixes some soundness
bugs. The breaking changes do not affect us.

CHANGELOG 0.1.0 -> 0.2.0:
  (potentially-)breaking changes:
    a29f3e6 (bindings: rust: rename {event,settings}_clone to try_clone, 2023-10-04)
    b290348 (bindings: rust: fix soundness of line_info modeling, 2023-10-03)
    d04639d (bindings: rust: bump MSRV to 1.60, 2023-06-16)

  new functionality:
    808d15e (bindings: rust: allow cloning line::InfoRef -> line::Info, 2023-10-03)
    64aac85 (bindings: rust: mark all owning types as `Send`, 2023-09-28)
    d12ce74 (bindings: rust: provide LineRequest::chip_name(), 2023-07-20)
    53226d5 (bindings: rust: examples: add dedicated examples, 2023-06-14)

  other changes:
    0a570b6 (bindings: rust: drop unneeded Arc within Chip, 2023-09-27)
    a97fe96 (bindings: rust: construct chip infos by reference, 2023-09-27)
    27afa47 (bindings: rust: remove useless clone, 2023-09-28)
    3f6e0bf (bindings: rust: add README.md for libgpiod crate, 2023-07-03)
    4b8357b (bindings: rust: clippy: silence false-positive on iterator, 2023-06-30)
    39189f0 (bindings: rust: clippy: drop unneeded conversions, 2023-06-30)
    46115fd (bindings: rust: clippy: silence false-positives on casts, 2023-06-30)
    901104e (bindings: rust: clippy: drop unnecessary casts, 2023-06-30)
    46ecbe0 (rust: examples: file comment consistency, 2023-06-24)
    aaed0f2 (bindings: rust: examples: replace tools examples with use case examples, 2023-06-23)
    b37bd9e (bindings: rust: examples: consistency cleanup, 2023-06-23)
    06c8ad9 (bindings: rust: package new examples in the distro tarball, 2023-06-15)

CHANGELOG 0.2.0 -> 0.2.1:
    acebcf2 (bindings: rust: feature gate unreleased features, 2023-10-06)

Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
2023-10-11 14:52:09 +05:30
Dorinda Bassey
d76c30c3b4 sound/device.rs: cargo fmt
Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2023-10-11 09:54:38 +02:00
Dorinda Bassey
7d84caa08a Merge remote-tracking branch 'origin/main' into virtio-sound 2023-10-10 17:18:17 +02:00
Alex Bennée
026cf0e532 gpio: re-arrange start_backend to handle config errors
The compiler warns with the move that:

  error: variants `CouldNotOpenDevice`, `CouldNotCreateGpioController`, `CouldNotCreateBackend`, and `CouldNotCreateDaemon` are never constructed
    --> crates/vhost-device-gpio/src/backend.rs:43:5
     |
  31 | pub(crate) enum Error {
     |                 ----- variants in this enum
  ...
  43 |     CouldNotOpenDevice(crate::gpio::Error),
     |     ^^^^^^^^^^^^^^^^^^
  44 |     #[error("Could not create gpio controller: {0}")]
  45 |     CouldNotCreateGpioController(crate::gpio::Error),
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  46 |     #[error("Could not create gpio backend: {0}")]
  47 |     CouldNotCreateBackend(crate::vhu_gpio::Error),
     |     ^^^^^^^^^^^^^^^^^^^^^
  48 |     #[error("Could not create daemon: {0}")]
  49 |     CouldNotCreateDaemon(vhost_user_backend::Error),
     |     ^^^^^^^^^^^^^^^^^^^^
     |
     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
     = note: `-D dead-code` implied by `-D warnings`

  error: could not compile `vhost-device-gpio` (bin "vhost-device-gpio") due to previous error

Because we never really care about failure within the spawn loop.
Handle this by ensuring errors propagate back to the caller.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
Alex Bennée
e4aefda817 gpio: document the "mock_gpio" feature
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
Alex Bennée
28690b6e87 gpio: add some info logging to MockGpioDevice
There is not much point having a MockGpioDevice if you don't get to
see when it state changes. Currently only MockGpioDevice emits
anything bellow an error or warning so we default to the "info" level.
Any debug added in the future will need to override RUST_LOG.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
Alex Bennée
a8ce1ec2e0 gpio: introduce "mock_gpio" let cfg drive device type
Now we have our plumbing in place we can separate the starting of the
device backend into a new function and call appropriately. As the
config is no longer parsed inside start_backend we can ensure we pass
any errors up rather than blindly unwrapping.

We can drop DeviceUnimplemented as we can't build a version where this
happens.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
Alex Bennée
e93b79ebf0 gpio: handle simulated device configuration
Update the configuration to accept the form n:sn:n:sn. Currently any
config for simulated devices gets skipped. This introduces
GpioDeviceType to represent the two types of GPIO device we have.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
Alex Bennée
2298cc980b gpio: give better names to MockGpioDevice pins
This will help later with info!() output.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
Alex Bennée
e020f33842 gpio: make MockGpioDevice open take number of gpios
This gives us a bit more flexibility on creating multiple sized
MockGpioDevices.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
Alex Bennée
344b4d5ec5 gpio: move DummyDevice and rename to MockGpioDevice
We are about to use it to simulate a device for the real binary so
lets move it out of the gpio module into its own. We also migrate the
VirtIO constants to keep the imports somewhat sane.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-09 11:36:59 +01:00
dependabot[bot]
5f3f3ec1ed build(deps): bump the vhost-device group with 3 updates
Bumps the vhost-device group with 3 updates: [libc](https://github.com/rust-lang/libc), [linux-raw-sys](https://github.com/sunfishcode/linux-raw-sys) and [proc-macro2](https://github.com/dtolnay/proc-macro2).


Updates `libc` from 0.2.148 to 0.2.149
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.148...0.2.149)

Updates `linux-raw-sys` from 0.4.8 to 0.4.10
- [Commits](https://github.com/sunfishcode/linux-raw-sys/compare/v0.4.8...v0.4.10)

Updates `proc-macro2` from 1.0.68 to 1.0.69
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.68...1.0.69)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: linux-raw-sys
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: proc-macro2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 10:52:26 +05:30
dependabot[bot]
cdc826ecfc build(deps): bump the vhost-device group with 22 updates
Bumps the vhost-device group with 22 updates:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.4.3` | `4.4.6` |
| [libc](https://github.com/rust-lang/libc) | `0.2.147` | `0.2.148` |
| [thiserror](https://github.com/dtolnay/thiserror) | `1.0.47` | `1.0.49` |
| [vmm-sys-util](https://github.com/rust-vmm/vmm-sys-util) | `0.11.1` | `0.11.2` |
| [itertools](https://github.com/rust-itertools/itertools) | `0.10.5` | `0.11.0` |
| [byteorder](https://github.com/BurntSushi/byteorder) | `1.4.3` | `1.5.0` |
| [anstyle](https://github.com/rust-cli/anstyle) | `1.0.1` | `1.0.4` |
| [anstyle-parse](https://github.com/rust-cli/anstyle) | `0.2.1` | `0.2.2` |
| [clap_lex](https://github.com/clap-rs/clap) | `0.5.0` | `0.5.1` |
| [fastrand](https://github.com/smol-rs/fastrand) | `2.0.0` | `2.0.1` |
| [hashbrown](https://github.com/rust-lang/hashbrown) | `0.14.0` | `0.14.1` |
| [indexmap](https://github.com/bluss/indexmap) | `2.0.0` | `2.0.2` |
| [linux-raw-sys](https://github.com/sunfishcode/linux-raw-sys) | `0.4.5` | `0.4.8` |
| [proc-macro2](https://github.com/dtolnay/proc-macro2) | `1.0.66` | `1.0.68` |
| [regex](https://github.com/rust-lang/regex) | `1.9.4` | `1.9.6` |
| [rustix](https://github.com/bytecodealliance/rustix) | `0.38.8` | `0.38.17` |
| [termcolor](https://github.com/BurntSushi/termcolor) | `1.2.0` | `1.3.0` |
| [toml_edit](https://github.com/toml-rs/toml) | `0.19.14` | `0.19.15` |
| [unicode-ident](https://github.com/dtolnay/unicode-ident) | `1.0.11` | `1.0.12` |
| [which](https://github.com/harryfei/which-rs) | `4.4.0` | `4.4.2` |
| [winapi-util](https://github.com/BurntSushi/winapi-util) | `0.1.5` | `0.1.6` |
| [winnow](https://github.com/winnow-rs/winnow) | `0.5.15` | `0.5.16` |


Updates `clap` from 4.4.3 to 4.4.6
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.4.3...v4.4.6)

Updates `libc` from 0.2.147 to 0.2.148
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.147...0.2.148)

Updates `thiserror` from 1.0.47 to 1.0.49
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.47...1.0.49)

Updates `vmm-sys-util` from 0.11.1 to 0.11.2
- [Release notes](https://github.com/rust-vmm/vmm-sys-util/releases)
- [Changelog](https://github.com/rust-vmm/vmm-sys-util/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-vmm/vmm-sys-util/commits)

Updates `itertools` from 0.10.5 to 0.11.0
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.10.5...v0.11.0)

Updates `byteorder` from 1.4.3 to 1.5.0
- [Changelog](https://github.com/BurntSushi/byteorder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/BurntSushi/byteorder/compare/1.4.3...1.5.0)

Updates `anstyle` from 1.0.1 to 1.0.4
- [Commits](https://github.com/rust-cli/anstyle/compare/anstyle-ls-v1.0.1...v1.0.4)

Updates `anstyle-parse` from 0.2.1 to 0.2.2
- [Commits](https://github.com/rust-cli/anstyle/compare/anstyle-parse-v0.2.1...anstyle-parse-v0.2.2)

Updates `clap_lex` from 0.5.0 to 0.5.1
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_lex-v0.5.0...clap_lex-v0.5.1)

Updates `fastrand` from 2.0.0 to 2.0.1
- [Release notes](https://github.com/smol-rs/fastrand/releases)
- [Changelog](https://github.com/smol-rs/fastrand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smol-rs/fastrand/compare/v2.0.0...v2.0.1)

Updates `hashbrown` from 0.14.0 to 0.14.1
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.14.0...v0.14.1)

Updates `indexmap` from 2.0.0 to 2.0.2
- [Changelog](https://github.com/bluss/indexmap/blob/master/RELEASES.md)
- [Commits](https://github.com/bluss/indexmap/compare/2.0.0...2.0.2)

Updates `linux-raw-sys` from 0.4.5 to 0.4.8
- [Commits](https://github.com/sunfishcode/linux-raw-sys/compare/v0.4.5...v0.4.8)

Updates `proc-macro2` from 1.0.66 to 1.0.68
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.66...1.0.68)

Updates `regex` from 1.9.4 to 1.9.6
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.9.4...1.9.6)

Updates `rustix` from 0.38.8 to 0.38.17
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.8...v0.38.17)

Updates `termcolor` from 1.2.0 to 1.3.0
- [Commits](https://github.com/BurntSushi/termcolor/compare/1.2.0...1.3.0)

Updates `toml_edit` from 0.19.14 to 0.19.15
- [Commits](https://github.com/toml-rs/toml/compare/v0.19.14...v0.19.15)

Updates `unicode-ident` from 1.0.11 to 1.0.12
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.11...1.0.12)

Updates `which` from 4.4.0 to 4.4.2
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/harryfei/which-rs/compare/4.4.0...4.4.2)

Updates `winapi-util` from 0.1.5 to 0.1.6
- [Commits](https://github.com/BurntSushi/winapi-util/compare/winapi-util-0.1.5...0.1.6)

Updates `winnow` from 0.5.15 to 0.5.16
- [Changelog](https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md)
- [Commits](https://github.com/winnow-rs/winnow/compare/v0.5.15...v0.5.16)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: vmm-sys-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: itertools
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: byteorder
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: anstyle
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: anstyle-parse
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: clap_lex
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: fastrand
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: hashbrown
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: indexmap
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: linux-raw-sys
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: proc-macro2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: regex
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: termcolor
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: toml_edit
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: unicode-ident
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: which
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: winapi-util
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: winnow
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-06 14:20:12 +05:30
Erik Schilling
072fadaaba dependabot: enable update grouping
This should group updates into a single PR. Hopefully, that simplfies
updates.

Updates that do _actually_ require code changes, will need a separate PR
anyway, after which dependabot can be asked to rebase/recreate.

Suggested-by: Patrick Roy <roypat@amazon.co.uk>
Suggested-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
2023-10-06 12:58:11 +05:30
dorindabassey
6124bea340
Merge pull request #38 from dorindabassey/ctrlmsg
device.rs: Add Chmap_info and Jack_info support
2023-10-04 14:36:29 +02:00
Dorinda Bassey
19cc0a318d device.rs: Add Chmap_info and Jack_info support
Added the supported features for Chmap_info and Jack_info control messages.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2023-10-04 08:30:16 +02:00
Matias Ezequiel Vara Larsen
0b4523617f
Merge pull request #32 from MatiasVara/add-delay-reading-from-guest
crates/sound: read buffers from guest memory rather than copying them
2023-10-03 15:25:28 +02:00
dependabot[bot]
a8091b8893 build(deps): bump rust-vmm-ci from 665f31f to 9751aaa
Bumps [rust-vmm-ci](https://github.com/rust-vmm/rust-vmm-ci) from `665f31f` to `9751aaa`.
- [Commits](665f31f4b4...9751aaa0d0)

---
updated-dependencies:
- dependency-name: rust-vmm-ci
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-03 09:03:40 +05:30
dependabot[bot]
3169f28899 build(deps): bump aho-corasick from 1.0.5 to 1.1.1
Bumps [aho-corasick](https://github.com/BurntSushi/aho-corasick) from 1.0.5 to 1.1.1.
- [Commits](https://github.com/BurntSushi/aho-corasick/compare/1.0.5...1.1.1)

---
updated-dependencies:
- dependency-name: aho-corasick
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-03 08:58:26 +05:30
dependabot[bot]
ce0e11c791 build(deps): bump serde from 1.0.185 to 1.0.188
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.185 to 1.0.188.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.185...v1.0.188)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-03 08:58:13 +05:30
dependabot[bot]
10482e1c4a build(deps): bump memchr from 2.5.0 to 2.6.4
Bumps [memchr](https://github.com/BurntSushi/memchr) from 2.5.0 to 2.6.4.
- [Commits](https://github.com/BurntSushi/memchr/compare/2.5.0...2.6.4)

---
updated-dependencies:
- dependency-name: memchr
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 10:29:42 +05:30
Matias Ezequiel Vara Larsen
3d0f785d66 crates/sound: read buffers from guest memory rather than copying them
In this commit, the buffers are only read from the available ring when
the audio backend will consume them. The guest driver moves buffers from
the used to the avail ring without knowing if the user application has
updated the content. As a result, when a request is enqueued into the
available ring, the device only reads the buffer from guest memory when
it is required by the audio engine. By doing this, we add enough delay
so that we can read the updated buffer.

Signed-off-by: Matias Ezequiel Vara Larsen <mvaralar@redhat.com>
2023-09-29 10:44:11 +02:00
Matias Ezequiel Vara Larsen
cbc80bee22
Merge pull request #36 from slp/pipewire-fix-thread_loop
sound/pipewire: move stream_hash insert into lock
2023-09-28 14:12:03 +02:00
Sergio Lopez
c9c86bd9aa sound/pipewire: move stream_hash insert into lock
Inserting a new stream into stream_hash can potentially move out of
context a stream previously stored in the hash with the same id,
triggering pw::stream::Stream::Drop, which calls pw_stream_destroy.

As calls to the pipewire library must happen either in the pipewire
thread or under thread_loop lock protection, move the insert into
stream_hash under the latter.

Signed-off-by: Sergio Lopez <slp@redhat.com>
2023-09-27 17:00:31 +02:00
Manos Pitsidianakis
5a7759e316 Prepend vhost-device- to crate directories
Having the directory of a crate match the name of the crate (i.e. the
one defined in its Cargo.toml) is intuitive and unambiguous.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-09-26 18:57:55 +05:30
Stefano Garzarella
e906351003
Merge pull request #34 from dorindabassey/threadl
pipewire.rs: Remove unsafe threadloop bindings
2023-09-26 10:43:01 +02:00
Dorinda Bassey
a80d6ccf22 pipewire.rs: Remove unsafe threadloop bindings
contributed these bindings upstream, use the bindings in pipewire rust

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2023-09-26 10:39:46 +02:00
Jeongik Cha
11cf80dcc9 [vsock] remove unused feature to reduce deps
this project uses only yaml config, so remove some of
features in config to reduce deps

Signed-off-by: Jeongik Cha <jeongik@google.com>
2023-09-26 14:08:53 +05:30
Jeongik Cha
7b2632b509 [vsock] refactor VhostUserVsockThread worker
For now, VhostUserVsockThread uses thread pool executor from futures,
but it doesn't need to use thread pool executor and futures because
we just need background worker thread, and a way to let it work.

So I removed unnecessary external dependency and made the logic simpler
by using just thread and channel

Signed-off-by: Jeongik Cha <jeongik@google.com>
2023-09-26 13:26:12 +05:30
dependabot[bot]
ed5b597c70 build(deps): bump hermit-abi from 0.3.2 to 0.3.3
Bumps [hermit-abi](https://github.com/hermitcore/hermit-rs) from 0.3.2 to 0.3.3.
- [Release notes](https://github.com/hermitcore/hermit-rs/releases)
- [Commits](https://github.com/hermitcore/hermit-rs/compare/hermit-abi-0.3.2...hermit-abi-0.3.3)

---
updated-dependencies:
- dependency-name: hermit-abi
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-26 13:17:17 +05:30
dependabot[bot]
b39be694a4 build(deps): bump shlex from 1.1.0 to 1.2.0
Bumps [shlex](https://github.com/comex/rust-shlex) from 1.1.0 to 1.2.0.
- [Changelog](https://github.com/comex/rust-shlex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/comex/rust-shlex/commits)

---
updated-dependencies:
- dependency-name: shlex
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-26 13:17:09 +05:30