Fix `clippy::precedence` warnings reported by clippy 0.1.85 (4d91de4e48
2025-02-17).
```console
error: operator precedence can trip the unwary
--> vhost-device-template/src/vhu_foo.rs:152:9
|
152 | / 1 << VIRTIO_F_VERSION_1
153 | | | 1 << VIRTIO_F_NOTIFY_ON_EMPTY
154 | | | 1 << VIRTIO_RING_F_INDIRECT_DESC
155 | | | 1 << VIRTIO_RING_F_EVENT_IDX
| |__________________________________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence
= note: `-D clippy::precedence` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::precedence)]`
help: consider parenthesizing your expression
|
152 ~ 1 << VIRTIO_F_VERSION_1
153 + | 1 << VIRTIO_F_NOTIFY_ON_EMPTY
154 + | 1 << VIRTIO_RING_F_INDIRECT_DESC | (1 << VIRTIO_RING_F_EVENT_IDX)
|
```
Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
|
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| LICENSE-APACHE | ||
| LICENSE-BSD-3-Clause | ||
| README.md | ||
vhost-device-input
Synopsis
vhost-device-input --socket-path <SOCKET_PATH> --event-list <EVENT_LIST>
Description
This program is a vhost-user backend that emulates a VirtIO input event. It polls on a host's input event device (/dev/input/eventX) and passes the input event data to guests.
This program is tested with QEMU's vhost-user-input-pci. The
implemenation is based on the vhost-user protocol and as such should be
interoperable with other virtual machine managers. Please see below for
working examples.
Options
-h, --help
Print help.
-s, --socket-path <SOCKET_PATH>
Location of vhost-user Unix domain sockets, this path will be suffixed with
0,1,2..event_count-1.
-e, --event-list <EVENT_LIST>
Input event device list in the format: event_device1,event_device2,...
Example: --event-list /dev/input/event14,/dev/input/event15
Examples
The daemon should be started first:
host# vhost-device-input --socket-path /some/path/input.sock \
--event-list /dev/input/event14,/dev/input/event15
Note that from the above command the socket path "/some/path/input.sock0" and "/some/path/input.sock1" will be created for input events "event14" and "event15" respectively. This in turn needs to be communicated as chardev sockets to QEMU in order for the backend daemon and access the Virtio queues with the guest over the shared memory.
host# qemu-system -M virt \
-object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on \
-chardev socket,path=/some/path/input.sock0,id=kbd0 \
-device vhost-user-input-pci,chardev=kdb0 \
-chardev socket,path=/some/path/input.sock1,id=mouse0 \
-device vhost-user-input-pci,chardev=mouse0 \
-numa node,memdev=mem \
...
License
This project is licensed under either of
- Apache License, Version 2.0
- BSD-3-Clause License