scsi: Initial boilerplate.

Co-developed-by: Erik Schilling <erik.schilling@linaro.org>
Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
Signed-off-by: Gaelan Steele <gbs@canishe.com>
This commit is contained in:
Gaelan Steele 2021-07-20 01:32:13 -07:00 committed by Viresh Kumar
parent 7b8ef38b77
commit 98c99b604e
5 changed files with 124 additions and 8 deletions

95
Cargo.lock generated
View File

@ -687,6 +687,27 @@ dependencies = [
"libc",
]
[[package]]
name = "num_enum"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
dependencies = [
"num_enum_derive",
]
[[package]]
name = "num_enum_derive"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "once_cell"
version = "1.18.0"
@ -800,6 +821,16 @@ version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "proc-macro-crate"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
dependencies = [
"once_cell",
"toml_edit",
]
[[package]]
name = "proc-macro2"
version = "1.0.58"
@ -1116,6 +1147,23 @@ dependencies = [
"serde",
]
[[package]]
name = "toml_datetime"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f"
[[package]]
name = "toml_edit"
version = "0.19.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
]
[[package]]
name = "typenum"
version = "1.16.0"
@ -1176,7 +1224,7 @@ dependencies = [
"thiserror",
"vhost",
"vhost-user-backend",
"virtio-bindings",
"virtio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"virtio-queue",
"vm-memory",
"vmm-sys-util",
@ -1193,7 +1241,7 @@ dependencies = [
"thiserror",
"vhost",
"vhost-user-backend",
"virtio-bindings",
"virtio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"virtio-queue",
"vm-memory",
"vmm-sys-util",
@ -1213,7 +1261,26 @@ dependencies = [
"thiserror",
"vhost",
"vhost-user-backend",
"virtio-bindings",
"virtio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"virtio-queue",
"vm-memory",
"vmm-sys-util",
]
[[package]]
name = "vhost-device-scsi"
version = "0.1.0"
dependencies = [
"clap",
"env_logger",
"epoll",
"log",
"num_enum",
"tempfile",
"thiserror",
"vhost",
"vhost-user-backend",
"virtio-bindings 0.2.0 (git+https://github.com/rust-vmm/vm-virtio?rev=467c8ec99375a5f4e08b85b18257cd7e0bac1dc0)",
"virtio-queue",
"vm-memory",
"vmm-sys-util",
@ -1228,7 +1295,7 @@ dependencies = [
"libc",
"log",
"vhost",
"virtio-bindings",
"virtio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"virtio-queue",
"vm-memory",
"vmm-sys-util",
@ -1251,7 +1318,7 @@ dependencies = [
"thiserror",
"vhost",
"vhost-user-backend",
"virtio-bindings",
"virtio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"virtio-queue",
"virtio-vsock",
"vm-memory",
@ -1264,6 +1331,11 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b9084faf91b9aa9676ae2cac8f1432df2839d9566e6f19f29dbc13a8b831dff"
[[package]]
name = "virtio-bindings"
version = "0.2.0"
source = "git+https://github.com/rust-vmm/vm-virtio?rev=467c8ec99375a5f4e08b85b18257cd7e0bac1dc0#467c8ec99375a5f4e08b85b18257cd7e0bac1dc0"
[[package]]
name = "virtio-queue"
version = "0.8.0"
@ -1271,7 +1343,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91aebb1df33db33cbf04d4c2445e4f78d0b0c8e65acfd16a4ee95ef63ca252f8"
dependencies = [
"log",
"virtio-bindings",
"virtio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"vm-memory",
"vmm-sys-util",
]
@ -1282,7 +1354,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb198c4dd87bf0b4f6b5d8cb41284fca13763a5a1a7e5b8a7ccce45e46d4cf73"
dependencies = [
"virtio-bindings",
"virtio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"virtio-queue",
"vm-memory",
]
@ -1488,6 +1560,15 @@ version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
name = "winnow"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699"
dependencies = [
"memchr",
]
[[package]]
name = "yaml-rust"
version = "0.4.5"

View File

@ -4,5 +4,6 @@ members = [
"crates/gpio",
"crates/i2c",
"crates/rng",
"crates/scsi",
"crates/vsock",
]

31
crates/scsi/Cargo.toml Normal file
View File

@ -0,0 +1,31 @@
[package]
name = "vhost-device-scsi"
version = "0.1.0"
authors = ["Gaelan Steele <gbs@canishe.com>", "Erik Schilling <erik.schilling@linaro.org>"]
description = "vhost scsi backend device"
repository = "https://github.com/rust-vmm/vhost-device"
readme = "README.md"
keywords = ["scsi", "vhost", "virt", "backend"]
license = "Apache-2.0 OR BSD-3-Clause"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
clap = { version = "4.2", features = ["derive"] }
env_logger = "0.10"
epoll = "4.3"
log = "0.4"
num_enum = "0.5"
thiserror = "1.0"
vhost = { version = "0.7", features = ["vhost-user-slave"] }
vhost-user-backend = "0.9"
# until the scsi bindings hit a release, we have to use the commit that adds them as rev.
virtio-bindings = { git = "https://github.com/rust-vmm/vm-virtio", rev = "467c8ec99375a5f4e08b85b18257cd7e0bac1dc0" }
virtio-queue = "0.8"
vm-memory = "0.11"
vmm-sys-util = "0.11"
[dev-dependencies]
tempfile = "3.2.0"

3
crates/scsi/src/main.rs Normal file
View File

@ -0,0 +1,3 @@
fn main() {
println!("Hello world");
}

@ -1 +1 @@
Subproject commit 285971e8c716512d6e35ac47a009a49fc3c75660
Subproject commit 8627b3766b2bedde4657c7e9ddfc6f95a20e6942