crosvm/Cargo.lock

2915 lines
57 KiB
Text
Raw Normal View History

# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "aarch64"
version = "0.1.0"
dependencies = [
"arch",
"base",
"cros_fdt",
"data_model 0.1.1-alpha.1",
"devices",
"gdbstub",
"gdbstub_arch",
"hypervisor",
"jail",
"kernel_cmdline",
"kernel_loader",
"libc",
"memoffset 0.6.5",
"minijail",
"rand",
"remain",
"resources",
"swap",
"sync",
"thiserror",
"vm_control",
"vm_memory",
]
[[package]]
name = "acpi_tables"
version = "0.1.0"
dependencies = [
"tempfile",
"zerocopy",
]
[[package]]
name = "aho-corasick"
version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
dependencies = [
"memchr",
]
[[package]]
name = "anti_tamper"
version = "0.1.0"
dependencies = [
"base",
]
[[package]]
name = "anyhow"
version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
[[package]]
name = "arbitrary"
version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f44124848854b941eafdb34f05b3bcf59472f643c7e151eba7c2b69daa469ed5"
[[package]]
name = "arch"
version = "0.1.0"
dependencies = [
"acpi_tables",
"anyhow",
"base",
"cfg-if",
"cros_fdt",
"cros_tracing",
"devices",
"gdbstub",
"gdbstub_arch",
"hypervisor",
"jail",
"kernel_cmdline",
"libc",
"minijail",
"power_monitor",
"remain",
"resources",
"serde",
"serde_json",
"serde_keyvalue",
"swap",
"sync",
"thiserror",
"vm_control",
"vm_memory",
"winapi",
]
[[package]]
name = "argh"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c375edecfd2074d5edcc31396860b6e54b6f928714d0e097b983053fac0cabe3"
dependencies = [
"argh_derive",
"argh_shared",
]
[[package]]
name = "argh_derive"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa013479b80109a1bf01a039412b0f0013d716f36921226d86c6709032fb7a03"
dependencies = [
"argh_shared",
"heck",
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "argh_helpers"
version = "0.1.0"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "argh_shared"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "149f75bbec1827618262e0855a68f0f9a7f2edc13faebf33c4f16d6725edb6a9"
[[package]]
name = "assertions"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d2db826478dd8333d60f91c74ff8f0b3d01252a32631f004b11fbb18c941036"
[[package]]
name = "async-task"
version = "4.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
[[package]]
name = "async-trait"
version = "0.1.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi 0.1.19",
"libc",
"winapi",
]
[[package]]
name = "audio_streams"
version = "0.1.0"
dependencies = [
"async-trait",
"futures",
"remain",
"serde",
"thiserror",
]
[[package]]
name = "audio_util"
version = "0.1.0"
dependencies = [
"async-trait",
"audio_streams",
"base",
"thiserror",
]
[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "balloon_control"
version = "0.1.0"
dependencies = [
"serde",
]
[[package]]
name = "base"
version = "0.1.0"
dependencies = [
"audio_streams",
"base_event_token_derive",
"cfg-if",
"chrono",
"data_model 0.1.1-alpha.1",
"env_logger",
"libc",
"libtest-mimic",
"log",
"minijail",
"once_cell",
"protobuf",
"rand",
"regex",
"remain",
"serde",
"serde_json",
"smallvec",
"sync",
"tempfile",
"thiserror",
"uuid",
"win_util",
"winapi",
"zerocopy",
]
[[package]]
name = "base_event_token_derive"
version = "0.1.0"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "bindgen"
version = "0.60.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6"
dependencies = [
"bitflags",
"cexpr",
"clang-sys",
"lazy_static",
"lazycell",
"peeking_take_while",
"proc-macro2",
"quote 1.0.21",
"regex",
"rustc-hash",
"shlex",
]
[[package]]
name = "bindgen"
version = "0.63.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
dependencies = [
"bitflags",
"cexpr",
"clang-sys",
"lazy_static",
"lazycell",
"log",
"peeking_take_while",
"proc-macro2",
"quote 1.0.21",
"regex",
"rustc-hash",
"shlex",
"syn 1.0.103",
"which",
]
[[package]]
name = "bit_field"
version = "0.1.0"
dependencies = [
"bit_field_derive",
]
[[package]]
name = "bit_field_derive"
version = "0.1.0"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitreader"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d84ea71c85d1fe98fe67a9b9988b1695bc24c0b0d3bfb18d4c510f44b4b09941"
dependencies = [
"cfg-if",
]
[[package]]
name = "broker_ipc"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"crash_report",
"metrics",
"serde",
]
[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e"
[[package]]
name = "catapult_converter"
version = "0.1.0"
dependencies = [
"argh",
"serde",
"serde_json",
"uuid",
]
[[package]]
name = "cbindgen"
version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb"
dependencies = [
"clap 3.2.23",
"heck",
"indexmap",
"log",
"proc-macro2",
"quote 1.0.21",
"serde",
"serde_json",
"syn 1.0.103",
"tempfile",
"toml",
]
[[package]]
name = "cc"
version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
dependencies = [
"jobserver",
]
[[package]]
name = "cexpr"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
dependencies = [
"nom",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
dependencies = [
"libc",
"num-integer",
"num-traits",
"serde",
"time",
"winapi",
]
[[package]]
name = "clang-sys"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
dependencies = [
"glob",
"libc",
"libloading",
]
[[package]]
name = "clap"
version = "3.2.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
dependencies = [
"atty",
"bitflags",
"clap_lex 0.2.4",
"indexmap",
"strsim",
"termcolor",
"textwrap",
]
[[package]]
name = "clap"
version = "4.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d7ae14b20b94cb02149ed21a86c423859cbe18dc7ed69845cace50e52b40a5"
dependencies = [
"bitflags",
"clap_derive",
"clap_lex 0.3.2",
"is-terminal",
"once_cell",
"strsim",
"termcolor",
]
[[package]]
name = "clap_derive"
version = "4.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44bec8e5c9d09e439c4335b1af0abaab56dcf3b94999a936e1bb47b9134288f0"
dependencies = [
"heck",
"proc-macro-error",
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "clap_lex"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
dependencies = [
"os_str_bytes",
]
[[package]]
name = "clap_lex"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "350b9cf31731f9957399229e9b2adc51eeabdfbe9d71d9a0552275fd12710d09"
dependencies = [
"os_str_bytes",
]
[[package]]
name = "const-sha1"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d"
[[package]]
name = "crash_report"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"serde",
"win_util",
]
[[package]]
name = "crc32fast"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
dependencies = [
"cfg-if",
]
[[package]]
name = "cros-codecs"
version = "0.1.0"
dependencies = [
"anyhow",
"bitreader",
"bytes",
"crc32fast",
"enumn",
"libva",
"log",
"thiserror",
]
[[package]]
name = "cros_async"
version = "0.1.1"
dependencies = [
"anyhow",
"async-task",
"async-trait",
"audio_streams",
"base",
"cfg-if",
"data_model 0.1.1-alpha.1",
"futures",
"futures-executor",
"futures-util",
"intrusive-collections",
"io_uring",
"libc",
"once_cell",
"paste",
"pin-utils",
"remain",
"serde",
"serde_keyvalue",
"slab",
"smallvec",
"sync",
"tempfile",
"thiserror",
"win_util",
"winapi",
]
[[package]]
name = "cros_asyncv2"
version = "0.2.0"
dependencies = [
"anyhow",
"async-task",
"base",
"data_model 0.1.1-alpha.1",
"futures",
"futures-executor",
"futures-util",
"intrusive-collections",
"io-uring",
"libc",
"memoffset 0.6.5",
"mio",
"once_cell",
"slab",
"smallvec",
"sync",
"tempfile",
"thiserror",
]
[[package]]
name = "cros_fdt"
version = "0.1.0"
dependencies = [
"anyhow",
"remain",
"thiserror",
]
[[package]]
name = "cros_fuzz"
version = "0.1.0"
dependencies = [
"cfg-if",
"libfuzzer-sys",
"rand_core",
]
[[package]]
name = "cros_tracing"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"cfg-if",
"once_cell",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
dependencies = [
"cfg-if",
"once_cell",
]
[[package]]
name = "crosvm"
version = "0.1.0"
dependencies = [
"aarch64",
"acpi_tables",
"anti_tamper",
"anyhow",
"arch",
"argh",
"argh_helpers",
"audio_streams",
"base",
"bit_field",
"broker_ipc",
"cfg-if",
"crash_report",
"cros_async",
"cros_tracing",
"crosvm_cli",
"crosvm_plugin",
"ctrlc",
"data_model 0.1.0",
"devices",
"disk",
"document-features",
"enumn",
"futures",
"gdbstub",
"gdbstub_arch",
"gpu_display",
"hypervisor",
"jail",
"kernel_cmdline",
"kernel_loader",
"kvm",
"kvm_sys",
"libc",
"libcras",
"log",
crosvm: add JSON configuration file support Add a new `--cfg` command-line parameter, which allows a single (for now) JSON configuration file to be specified and loaded as the base configuration for the VM, if the `config-file` feature is enabled (the default). Configuration options in the file can be overriden or extended by the regular command-line arguments. Typically, options that can be specified only once are overriden, and options that can be specified several times (like `--block`) are extended, allowing some devices of the same type to be declared in a configuration file and some more on the command-line. Due to a limitation in argh, which does not yet allow `Option<bool>` fields to be used as switches, merging more than a single configuration file is not reliable so we only support a single configuration file for now. This has been addressed upstream but not yet in a released version. Configuration file support for all the options of RunCommand increases the crosvm binary size compiled with the `chromeos` profile by 250KB. However, due to the currently limited set of options in the configuration file, the present CL increases the binary size by just 78KB. Without the `config-file` feature, this CL does not incur any binary size increase. Supported parameters as of this commit: * battery * block * executable-path * initrd * net * params * serial * socket BUG=b:218223240 TEST=`cargo run --features config-file -- run --cfg vm.json` boots the VM with parameters defined in vm.json. Change-Id: Ibb27556144ee766af81c178e5b94bd5117e102da Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3970368 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Alexandre Courbot <acourbot@chromium.org> Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-10-20 06:40:27 +00:00
"merge",
"metrics",
"minijail",
"net_util",
"once_cell",
"p9",
"protobuf",
"protos",
"rand",
"remain",
"resources",
"rutabaga_gfx",
"sandbox",
"scudo",
"serde",
"serde_json",
"serde_keyvalue",
2023-02-17 07:11:47 +00:00
"smallvec",
"static_assertions",
"swap",
"sync",
"tempfile",
"thiserror",
"tube_transporter",
"uuid",
"vhost",
"vm_control",
"vm_memory",
"win_audio",
"win_util",
"winapi",
"x86_64",
]
[[package]]
name = "crosvm-fuzz"
version = "0.0.1"
dependencies = [
"base",
"cros_fuzz",
"data_model 0.1.1-alpha.1",
"devices",
"disk",
"fuse",
"hypervisor",
"kernel_loader",
"libc",
"rand",
"tempfile",
"usb_util",
"vm_memory",
]
[[package]]
name = "crosvm_cli"
version = "0.1.0"
dependencies = [
"anyhow",
"cfg-if",
"win_util",
"winapi",
]
[[package]]
name = "crosvm_control"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"cbindgen",
"cc",
"libc",
"tempfile",
"vm_control",
]
[[package]]
name = "crosvm_plugin"
version = "0.17.0"
dependencies = [
"base",
"kvm",
"kvm_sys",
"libc",
"protobuf",
"protos",
]
[[package]]
name = "ctrlc"
version = "3.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b37feaa84e6861e00a1f5e5aa8da3ee56d605c9992d33e082786754828e20865"
dependencies = [
"nix 0.24.2",
"winapi",
]
[[package]]
name = "data_model"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c0d4dcbc04881739a8916b96a84154517eb4230e1c889d45bcaefad7e66dcd2"
dependencies = [
"assertions",
]
[[package]]
name = "data_model"
version = "0.1.1-alpha.1"
dependencies = [
"cfg-if",
"libc",
"remain",
"serde",
"static_assertions",
"thiserror",
"winapi",
"zerocopy",
]
[[package]]
name = "dbus"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6"
dependencies = [
"libc",
"libdbus-sys",
"winapi",
]
[[package]]
name = "derive-into-owned"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "576fce04d31d592013a5887ba8d9c3830adff329e5096d7e1eb5e8e61262ca62"
dependencies = [
"quote 0.3.15",
"syn 0.11.11",
]
[[package]]
name = "devices"
version = "0.1.0"
dependencies = [
"acpi_tables",
"anyhow",
"argh",
"async-task",
"async-trait",
"audio_streams",
"audio_util",
"balloon_control",
"base",
"bit_field",
"broker_ipc",
"bytes",
"cfg-if",
"chrono",
"crc32fast",
"cros-codecs",
"cros_async",
"cros_tracing",
"crosvm_cli",
"data_model 0.1.1-alpha.1",
"dbus",
"disk",
"downcast-rs",
"enumn",
"ffmpeg",
"fuse",
"futures",
"gpu_display",
"hypervisor",
"kvm_sys",
"libc",
"libcras",
"libva",
"libvda",
"linux_input_sys",
"memoffset 0.6.5",
"metrics",
"minijail",
"net_sys",
"net_util",
"num-traits",
"once_cell",
"p9",
"power_monitor",
"protobuf",
"protos",
"rand",
"remain",
"resources",
"rutabaga_gfx",
"serde",
"serde_json",
"serde_keyvalue",
"smallvec",
"swap",
"sync",
"system_api",
"tempfile",
"thiserror",
"tpm2",
"tube_transporter",
"usb_util",
"uuid",
"vfio_sys",
"vhost",
"virtio_sys",
"vm_control",
"vm_memory",
"vmm_vhost",
"win_audio",
"win_util",
"winapi",
"zerocopy",
]
[[package]]
name = "disk"
version = "0.1.0"
dependencies = [
"async-trait",
"base",
"cfg-if",
"crc32fast",
"cros_async",
"data_model 0.1.1-alpha.1",
"futures",
"libc",
"protobuf",
"protos",
"remain",
"serde",
"sync",
"tempfile",
"thiserror",
"uuid",
"vm_memory",
"zerocopy",
]
[[package]]
name = "document-features"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3267e1ade4f1f6ddd35fed44a04b6514e244ffeda90c6a14a9ee30f9c9fd7a1"
dependencies = [
"litrs",
]
[[package]]
name = "downcast-rs"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
[[package]]
name = "e2e_tests"
version = "0.1.0"
dependencies = [
"anyhow",
"fixture",
"prebuilts",
"rand",
"tempfile",
]
[[package]]
name = "either"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
[[package]]
name = "enumn"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "052bc8773a98bd051ff37db74a8a25f00e6bfa2cbd03373390c72e9f7afbf344"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "env_logger"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
dependencies = [
"atty",
"humantime",
"log",
"regex",
"termcolor",
]
[[package]]
name = "errno"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
dependencies = [
"errno-dragonfly",
"libc",
"winapi",
]
[[package]]
name = "errno-dragonfly"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
dependencies = [
"cc",
"libc",
]
gpu_display: upstream Windows implementation On Windows, we have to create a GUI thread that creates the window and retrieves window messages from the thread-specific message queue created by the system. All host events, such as window resizing and mouse and keyboard events, are sent in the form of window messages. Hence, we created these structs/traits to model it: - `Window`: Owns the handle of one window, and provides helper functions for operating on this window. - `HandleWindowMessage`: A trait implemented by the struct that processes host events. In our case, that is the surface. - `WindowMessageProcessor`: Holds one `Window` object and one `HandleWindowMessage` trait object. We only support one window for now. Once we support multi-windowing, there will be multiple processors. - `WindowMessageDispatcher`: A singleton, responsible for dispatching messages retrieved from the message queue to the targeted processor. - `WindowProcedureThread`: Wraps the GUI thread, retrieves messages from the message queue and forwards them to the dispatcher. It also provides helper functions for other threads to talk to the GUI thread. - `MessageRelayThread`: Relays service messages to the GUI thread. Main difference from other platforms: event devices are imported to the GUI thread, since all host events are processed there. BUG=b:213150276 TEST=presubmit Change-Id: I0aabf6adf8a9ff4b24375e9c7df7625b6f761c7a Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3834009 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-16 21:12:11 +00:00
[[package]]
name = "euclid"
version = "0.22.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade"
dependencies = [
"num-traits",
]
[[package]]
name = "fastrand"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
dependencies = [
"instant",
]
[[package]]
name = "ffmpeg"
version = "0.1.0"
dependencies = [
"anyhow",
"libc",
"pkg-config",
"thiserror",
]
[[package]]
name = "fixture"
version = "0.1.0"
dependencies = [
"anyhow",
"arch",
"base",
"cfg-if",
"libc",
"log",
"prebuilts",
"rand",
"shlex",
"tempfile",
]
[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "fuse"
version = "0.1.0"
dependencies = [
"base",
"bitflags",
"cros_tracing",
"crossbeam-utils",
"data_model 0.1.1-alpha.1",
"enumn",
"libc",
"remain",
"thiserror",
"zerocopy",
]
[[package]]
name = "futures"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
dependencies = [
"futures-channel",
"futures-core",
"futures-executor",
"futures-io",
"futures-sink",
"futures-task",
"futures-util",
]
[[package]]
name = "futures-channel"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
dependencies = [
"futures-core",
"futures-sink",
]
[[package]]
name = "futures-core"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
[[package]]
name = "futures-executor"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
dependencies = [
"futures-core",
"futures-task",
"futures-util",
"num_cpus",
]
[[package]]
name = "futures-io"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
[[package]]
name = "futures-macro"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "futures-sink"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
[[package]]
name = "futures-task"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
[[package]]
name = "futures-util"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
dependencies = [
"futures-channel",
"futures-core",
"futures-io",
"futures-macro",
"futures-sink",
"futures-task",
"memchr",
"pin-project-lite",
"pin-utils",
"slab",
]
[[package]]
name = "gdbstub"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32c95766e0414f8bfc1d07055574c621b67739466d6ba516c4fef8e99d30d2e6"
dependencies = [
"bitflags",
"cfg-if",
"log",
"managed",
"num-traits",
"paste",
]
[[package]]
name = "gdbstub_arch"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eecb536c55c43593a00dde9074dbbdb0e81ce5f20dbca921400f8779c21dea9c"
dependencies = [
"gdbstub",
"num-traits",
]
[[package]]
name = "getrandom"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
dependencies = [
"cfg-if",
"libc",
"wasi 0.11.0+wasi-snapshot-preview1",
]
[[package]]
name = "glob"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
[[package]]
name = "gpu_display"
version = "0.1.0"
dependencies = [
gpu_display: upstream Windows implementation On Windows, we have to create a GUI thread that creates the window and retrieves window messages from the thread-specific message queue created by the system. All host events, such as window resizing and mouse and keyboard events, are sent in the form of window messages. Hence, we created these structs/traits to model it: - `Window`: Owns the handle of one window, and provides helper functions for operating on this window. - `HandleWindowMessage`: A trait implemented by the struct that processes host events. In our case, that is the surface. - `WindowMessageProcessor`: Holds one `Window` object and one `HandleWindowMessage` trait object. We only support one window for now. Once we support multi-windowing, there will be multiple processors. - `WindowMessageDispatcher`: A singleton, responsible for dispatching messages retrieved from the message queue to the targeted processor. - `WindowProcedureThread`: Wraps the GUI thread, retrieves messages from the message queue and forwards them to the dispatcher. It also provides helper functions for other threads to talk to the GUI thread. - `MessageRelayThread`: Relays service messages to the GUI thread. Main difference from other platforms: event devices are imported to the GUI thread, since all host events are processed there. BUG=b:213150276 TEST=presubmit Change-Id: I0aabf6adf8a9ff4b24375e9c7df7625b6f761c7a Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3834009 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-16 21:12:11 +00:00
"anyhow",
"base",
"cc",
"cfg-if",
"data_model 0.1.1-alpha.1",
gpu_display: upstream Windows implementation On Windows, we have to create a GUI thread that creates the window and retrieves window messages from the thread-specific message queue created by the system. All host events, such as window resizing and mouse and keyboard events, are sent in the form of window messages. Hence, we created these structs/traits to model it: - `Window`: Owns the handle of one window, and provides helper functions for operating on this window. - `HandleWindowMessage`: A trait implemented by the struct that processes host events. In our case, that is the surface. - `WindowMessageProcessor`: Holds one `Window` object and one `HandleWindowMessage` trait object. We only support one window for now. Once we support multi-windowing, there will be multiple processors. - `WindowMessageDispatcher`: A singleton, responsible for dispatching messages retrieved from the message queue to the targeted processor. - `WindowProcedureThread`: Wraps the GUI thread, retrieves messages from the message queue and forwards them to the dispatcher. It also provides helper functions for other threads to talk to the GUI thread. - `MessageRelayThread`: Relays service messages to the GUI thread. Main difference from other platforms: event devices are imported to the GUI thread, since all host events are processed there. BUG=b:213150276 TEST=presubmit Change-Id: I0aabf6adf8a9ff4b24375e9c7df7625b6f761c7a Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3834009 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-16 21:12:11 +00:00
"euclid",
"libc",
"linux_input_sys",
gpu_display: upstream Windows implementation On Windows, we have to create a GUI thread that creates the window and retrieves window messages from the thread-specific message queue created by the system. All host events, such as window resizing and mouse and keyboard events, are sent in the form of window messages. Hence, we created these structs/traits to model it: - `Window`: Owns the handle of one window, and provides helper functions for operating on this window. - `HandleWindowMessage`: A trait implemented by the struct that processes host events. In our case, that is the surface. - `WindowMessageProcessor`: Holds one `Window` object and one `HandleWindowMessage` trait object. We only support one window for now. Once we support multi-windowing, there will be multiple processors. - `WindowMessageDispatcher`: A singleton, responsible for dispatching messages retrieved from the message queue to the targeted processor. - `WindowProcedureThread`: Wraps the GUI thread, retrieves messages from the message queue and forwards them to the dispatcher. It also provides helper functions for other threads to talk to the GUI thread. - `MessageRelayThread`: Relays service messages to the GUI thread. Main difference from other platforms: event devices are imported to the GUI thread, since all host events are processed there. BUG=b:213150276 TEST=presubmit Change-Id: I0aabf6adf8a9ff4b24375e9c7df7625b6f761c7a Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3834009 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-16 21:12:11 +00:00
"metrics",
"num-traits",
"pkg-config",
"remain",
gpu_display: upstream Windows implementation On Windows, we have to create a GUI thread that creates the window and retrieves window messages from the thread-specific message queue created by the system. All host events, such as window resizing and mouse and keyboard events, are sent in the form of window messages. Hence, we created these structs/traits to model it: - `Window`: Owns the handle of one window, and provides helper functions for operating on this window. - `HandleWindowMessage`: A trait implemented by the struct that processes host events. In our case, that is the surface. - `WindowMessageProcessor`: Holds one `Window` object and one `HandleWindowMessage` trait object. We only support one window for now. Once we support multi-windowing, there will be multiple processors. - `WindowMessageDispatcher`: A singleton, responsible for dispatching messages retrieved from the message queue to the targeted processor. - `WindowProcedureThread`: Wraps the GUI thread, retrieves messages from the message queue and forwards them to the dispatcher. It also provides helper functions for other threads to talk to the GUI thread. - `MessageRelayThread`: Relays service messages to the GUI thread. Main difference from other platforms: event devices are imported to the GUI thread, since all host events are processed there. BUG=b:213150276 TEST=presubmit Change-Id: I0aabf6adf8a9ff4b24375e9c7df7625b6f761c7a Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3834009 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-16 21:12:11 +00:00
"serde",
"sync",
"thiserror",
gpu_display: upstream Windows implementation On Windows, we have to create a GUI thread that creates the window and retrieves window messages from the thread-specific message queue created by the system. All host events, such as window resizing and mouse and keyboard events, are sent in the form of window messages. Hence, we created these structs/traits to model it: - `Window`: Owns the handle of one window, and provides helper functions for operating on this window. - `HandleWindowMessage`: A trait implemented by the struct that processes host events. In our case, that is the surface. - `WindowMessageProcessor`: Holds one `Window` object and one `HandleWindowMessage` trait object. We only support one window for now. Once we support multi-windowing, there will be multiple processors. - `WindowMessageDispatcher`: A singleton, responsible for dispatching messages retrieved from the message queue to the targeted processor. - `WindowProcedureThread`: Wraps the GUI thread, retrieves messages from the message queue and forwards them to the dispatcher. It also provides helper functions for other threads to talk to the GUI thread. - `MessageRelayThread`: Relays service messages to the GUI thread. Main difference from other platforms: event devices are imported to the GUI thread, since all host events are processed there. BUG=b:213150276 TEST=presubmit Change-Id: I0aabf6adf8a9ff4b24375e9c7df7625b6f761c7a Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3834009 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-16 21:12:11 +00:00
"vm_control",
"which",
gpu_display: upstream Windows implementation On Windows, we have to create a GUI thread that creates the window and retrieves window messages from the thread-specific message queue created by the system. All host events, such as window resizing and mouse and keyboard events, are sent in the form of window messages. Hence, we created these structs/traits to model it: - `Window`: Owns the handle of one window, and provides helper functions for operating on this window. - `HandleWindowMessage`: A trait implemented by the struct that processes host events. In our case, that is the surface. - `WindowMessageProcessor`: Holds one `Window` object and one `HandleWindowMessage` trait object. We only support one window for now. Once we support multi-windowing, there will be multiple processors. - `WindowMessageDispatcher`: A singleton, responsible for dispatching messages retrieved from the message queue to the targeted processor. - `WindowProcedureThread`: Wraps the GUI thread, retrieves messages from the message queue and forwards them to the dispatcher. It also provides helper functions for other threads to talk to the GUI thread. - `MessageRelayThread`: Relays service messages to the GUI thread. Main difference from other platforms: event devices are imported to the GUI thread, since all host events are processed there. BUG=b:213150276 TEST=presubmit Change-Id: I0aabf6adf8a9ff4b24375e9c7df7625b6f761c7a Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3834009 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-16 21:12:11 +00:00
"win_util",
"winapi",
"zerocopy",
]
[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "heck"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "hermit-abi"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
[[package]]
name = "humantime"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "hypervisor"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"bit_field",
"bitflags",
"cros_fdt",
"data_model 0.1.1-alpha.1",
"downcast-rs",
"enumn",
"fnv",
"gdbstub",
"gdbstub_arch",
"kvm",
"kvm_sys",
"libc",
"memoffset 0.6.5",
"once_cell",
"serde",
"serde_json",
"sync",
"tempfile",
"thiserror",
"vm_memory",
"win_util",
"winapi",
]
[[package]]
name = "indexmap"
version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
dependencies = [
"autocfg",
"hashbrown",
]
[[package]]
name = "instant"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
"cfg-if",
]
[[package]]
name = "intrusive-collections"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfe531a7789d7120f3e17d4f3f2cd95f54418ba7354f60b7b622b6644a07888a"
dependencies = [
"memoffset 0.5.6",
]
[[package]]
name = "io-lifetimes"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"
dependencies = [
"libc",
"windows-sys 0.45.0",
]
[[package]]
name = "io-uring"
version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00d78c9f2db2a9800dfd15c69543896dae2135112dde0d1944442e83da8ce23a"
dependencies = [
"bitflags",
"libc",
]
[[package]]
name = "io_uring"
version = "0.1.1"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"libc",
"remain",
"sync",
"tempfile",
"thiserror",
]
[[package]]
name = "is-terminal"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857"
dependencies = [
"hermit-abi 0.3.1",
"io-lifetimes",
"rustix",
"windows-sys 0.45.0",
]
[[package]]
name = "itoa"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
[[package]]
name = "jail"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"cfg-if",
"libc",
"minijail",
"once_cell",
"serde",
"serde_keyvalue",
"static_assertions",
"which",
"zerocopy",
]
[[package]]
name = "jobserver"
version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
dependencies = [
"libc",
]
[[package]]
name = "kernel_cmdline"
version = "0.1.0"
dependencies = [
"libc",
"remain",
"thiserror",
]
[[package]]
name = "kernel_loader"
version = "0.1.0"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"libc",
"remain",
"resources",
"tempfile",
"thiserror",
"vm_memory",
"zerocopy",
]
[[package]]
name = "kvm"
version = "0.1.0"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"kvm_sys",
"libc",
"sync",
"vm_memory",
]
[[package]]
name = "kvm_sys"
version = "0.1.0"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"libc",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "lazycell"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "libc"
version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "libcras"
version = "0.1.0"
dependencies = [
"audio_streams",
"serde",
]
[[package]]
name = "libdbus-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b"
dependencies = [
"pkg-config",
]
[[package]]
name = "libfuzzer-sys"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae185684fe19814afd066da15a7cc41e126886c21282934225d9fc847582da58"
dependencies = [
"arbitrary",
"cc",
"once_cell",
]
[[package]]
name = "libloading"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
dependencies = [
"cfg-if",
"winapi",
]
[[package]]
name = "libslirp-sys"
version = "4.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2772370ce9b7fa05c7eae0bd033005e139a64d52cee498a7905b3eb5d243c5f4"
dependencies = [
"pkg-config",
]
[[package]]
name = "libtest-mimic"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7b603516767d1ab23d0de09d023e62966c3322f7148297c35cf3d97aa8b37fa"
dependencies = [
"clap 4.1.8",
"termcolor",
"threadpool",
]
[[package]]
name = "libva"
version = "0.1.0"
dependencies = [
"anyhow",
"bitflags",
"crc32fast",
"log",
"pkg-config",
]
[[package]]
name = "libvda"
version = "0.1.0"
dependencies = [
"enumn",
"libc",
"pkg-config",
]
[[package]]
name = "linux-raw-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
[[package]]
name = "linux_input_sys"
version = "0.1.0"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"libc",
"zerocopy",
]
[[package]]
name = "litrs"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9275e0933cf8bb20f008924c0cb07a0692fe54d8064996520bf998de9eb79aa"
[[package]]
name = "lock_api"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
name = "log"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
"cfg-if",
]
[[package]]
name = "managed"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d"
[[package]]
name = "memchr"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memoffset"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
dependencies = [
"autocfg",
]
[[package]]
name = "memoffset"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
dependencies = [
"autocfg",
]
rutabaga_gfx: nuke base dependency The base crate has some nifty abstractions but also pulls in things like minijail, audio_streams and various random items. This prevents true cross-platform interoperatibility, which requires the ability to upload to crates.io with relative ease. This change removes the base crate. The replacement strategy is two fold: - For things like SafeDescriptor which don't have adequate solutions on crates.io, just copy it internally. I think SafeDescriptor in particular -- since it works on bot Windows/Linux should probably be made into a separate crate long-term since it is generically valuable. Similarly for the Event and WaitContext APIs. For now, live with the duplication. - Otherwise, the nix crate does most of the Linux specific items. The cross-domain context type has a lot of dependencies on Linux sockets / epoll. This is refactored to look more like the Fuchsia solution, which uses std::sync::mspc channels to connect to an utility Wayland FIDL library. The rest of Rutabaga mostly relies just on SafeDescriptor and the ability to clone it. rutabaga_gralloc allows provides shared memory used via virtwl. Another thing to call out is zerocopy is now strongly versioned to the latest stable release on crates.io I also got rid of #[cfg(feature = "virgl_renderer_next")] on the renderer server fd, since it was complicating the refactoring. SafeDescriptor works everywhere and adding the #ifdef should be reserved for the lowest-levels of platform specific code when possible. Overall, this makes compiling on Fuchsia hosts much simpler. BUG=b:273555494 TEST= - run cross_domain context type, see Wayland apps - note there is a previous bug in cross domain when resizing windows, it occurs before this CL. The reason seems to be raciness and can likely be fixed gfxstream-like seqno. - run gfxstream + virgl on Linux, verify everything works. Change-Id: I7519f2b8ed0cd57c47980d4e76403057498cf064 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4353700 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2023-03-14 00:49:18 +00:00
[[package]]
name = "memoffset"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
"autocfg",
]
crosvm: add JSON configuration file support Add a new `--cfg` command-line parameter, which allows a single (for now) JSON configuration file to be specified and loaded as the base configuration for the VM, if the `config-file` feature is enabled (the default). Configuration options in the file can be overriden or extended by the regular command-line arguments. Typically, options that can be specified only once are overriden, and options that can be specified several times (like `--block`) are extended, allowing some devices of the same type to be declared in a configuration file and some more on the command-line. Due to a limitation in argh, which does not yet allow `Option<bool>` fields to be used as switches, merging more than a single configuration file is not reliable so we only support a single configuration file for now. This has been addressed upstream but not yet in a released version. Configuration file support for all the options of RunCommand increases the crosvm binary size compiled with the `chromeos` profile by 250KB. However, due to the currently limited set of options in the configuration file, the present CL increases the binary size by just 78KB. Without the `config-file` feature, this CL does not incur any binary size increase. Supported parameters as of this commit: * battery * block * executable-path * initrd * net * params * serial * socket BUG=b:218223240 TEST=`cargo run --features config-file -- run --cfg vm.json` boots the VM with parameters defined in vm.json. Change-Id: Ibb27556144ee766af81c178e5b94bd5117e102da Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3970368 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Alexandre Courbot <acourbot@chromium.org> Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-10-20 06:40:27 +00:00
[[package]]
name = "merge"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10bbef93abb1da61525bbc45eeaff6473a41907d19f8f9aa5168d214e10693e9"
dependencies = [
"merge_derive",
"num-traits",
]
[[package]]
name = "merge_derive"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "209d075476da2e63b4b29e72a2ef627b840589588e71400a25e3565c4f849d07"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "metrics"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"cfg-if",
"chrono",
"libc",
"proto_build_tools",
"protobuf",
"serde",
"serde_json",
"sync",
"win_util",
"winapi",
"wmi",
]
[[package]]
name = "minijail"
version = "0.2.3"
dependencies = [
"libc",
"minijail-sys",
]
[[package]]
name = "minijail-sys"
version = "0.0.14"
dependencies = [
"bindgen 0.63.0",
"libc",
"pkg-config",
"which",
]
[[package]]
name = "minimal-lexical"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "mio"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
dependencies = [
"libc",
"log",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.45.0",
]
[[package]]
name = "named-lock"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b4a84f3731e71a5792fca72324356bf700c8959d31a2ac34134b25989f254c3"
dependencies = [
"libc",
"once_cell",
"parking_lot",
"thiserror",
"widestring 1.0.2",
"winapi",
]
[[package]]
name = "net_sys"
version = "0.1.0"
dependencies = [
"base",
"libc",
]
[[package]]
name = "net_util"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"cfg-if",
"cros_async",
"libc",
"libslirp-sys",
"metrics",
"net_sys",
"pcap-file",
"prebuilts",
"remain",
"serde",
"serde_json",
"smallvec",
"thiserror",
"virtio_sys",
"winapi",
"zerocopy",
]
[[package]]
name = "nix"
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
dependencies = [
"bitflags",
"cc",
"cfg-if",
"libc",
"memoffset 0.6.5",
]
[[package]]
name = "nix"
version = "0.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc"
dependencies = [
"bitflags",
"cfg-if",
"libc",
]
rutabaga_gfx: nuke base dependency The base crate has some nifty abstractions but also pulls in things like minijail, audio_streams and various random items. This prevents true cross-platform interoperatibility, which requires the ability to upload to crates.io with relative ease. This change removes the base crate. The replacement strategy is two fold: - For things like SafeDescriptor which don't have adequate solutions on crates.io, just copy it internally. I think SafeDescriptor in particular -- since it works on bot Windows/Linux should probably be made into a separate crate long-term since it is generically valuable. Similarly for the Event and WaitContext APIs. For now, live with the duplication. - Otherwise, the nix crate does most of the Linux specific items. The cross-domain context type has a lot of dependencies on Linux sockets / epoll. This is refactored to look more like the Fuchsia solution, which uses std::sync::mspc channels to connect to an utility Wayland FIDL library. The rest of Rutabaga mostly relies just on SafeDescriptor and the ability to clone it. rutabaga_gralloc allows provides shared memory used via virtwl. Another thing to call out is zerocopy is now strongly versioned to the latest stable release on crates.io I also got rid of #[cfg(feature = "virgl_renderer_next")] on the renderer server fd, since it was complicating the refactoring. SafeDescriptor works everywhere and adding the #ifdef should be reserved for the lowest-levels of platform specific code when possible. Overall, this makes compiling on Fuchsia hosts much simpler. BUG=b:273555494 TEST= - run cross_domain context type, see Wayland apps - note there is a previous bug in cross domain when resizing windows, it occurs before this CL. The reason seems to be raciness and can likely be fixed gfxstream-like seqno. - run gfxstream + virgl on Linux, verify everything works. Change-Id: I7519f2b8ed0cd57c47980d4e76403057498cf064 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4353700 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2023-03-14 00:49:18 +00:00
[[package]]
name = "nix"
version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
dependencies = [
"bitflags",
"cfg-if",
"libc",
"memoffset 0.7.1",
"pin-utils",
"static_assertions",
]
[[package]]
name = "nom"
version = "7.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
dependencies = [
"memchr",
"minimal-lexical",
]
[[package]]
name = "num-integer"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
dependencies = [
"autocfg",
]
[[package]]
name = "num_cpus"
version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
dependencies = [
"hermit-abi 0.1.19",
"libc",
]
[[package]]
name = "once_cell"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
[[package]]
name = "os_str_bytes"
version = "6.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
[[package]]
name = "p9"
version = "0.1.0"
dependencies = [
"libc",
"serde",
"wire_format_derive",
]
[[package]]
name = "parking_lot"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
"lock_api",
"parking_lot_core",
]
[[package]]
name = "parking_lot_core"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"smallvec",
"windows-sys 0.42.0",
]
[[package]]
name = "paste"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc"
[[package]]
name = "pcap-file"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ad13fed1a83120159aea81b265074f21d753d157dd16b10cc3790ecba40a341"
dependencies = [
"byteorder",
"derive-into-owned",
"thiserror",
]
[[package]]
name = "peeking_take_while"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
[[package]]
name = "pin-project-lite"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
[[package]]
name = "pin-utils"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
[[package]]
name = "power_monitor"
version = "0.1.0"
dependencies = [
"base",
"dbus",
"proto_build_tools",
"protobuf",
"remain",
"thiserror",
]
[[package]]
name = "ppv-lite86"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
[[package]]
name = "prebuilts"
version = "0.1.0"
dependencies = [
"anyhow",
"cfg-if",
"named-lock",
]
crosvm: add JSON configuration file support Add a new `--cfg` command-line parameter, which allows a single (for now) JSON configuration file to be specified and loaded as the base configuration for the VM, if the `config-file` feature is enabled (the default). Configuration options in the file can be overriden or extended by the regular command-line arguments. Typically, options that can be specified only once are overriden, and options that can be specified several times (like `--block`) are extended, allowing some devices of the same type to be declared in a configuration file and some more on the command-line. Due to a limitation in argh, which does not yet allow `Option<bool>` fields to be used as switches, merging more than a single configuration file is not reliable so we only support a single configuration file for now. This has been addressed upstream but not yet in a released version. Configuration file support for all the options of RunCommand increases the crosvm binary size compiled with the `chromeos` profile by 250KB. However, due to the currently limited set of options in the configuration file, the present CL increases the binary size by just 78KB. Without the `config-file` feature, this CL does not incur any binary size increase. Supported parameters as of this commit: * battery * block * executable-path * initrd * net * params * serial * socket BUG=b:218223240 TEST=`cargo run --features config-file -- run --cfg vm.json` boots the VM with parameters defined in vm.json. Change-Id: Ibb27556144ee766af81c178e5b94bd5117e102da Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3970368 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Alexandre Courbot <acourbot@chromium.org> Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-10-20 06:40:27 +00:00
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"version_check",
]
[[package]]
name = "proc-macro2"
version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
dependencies = [
"unicode-ident",
]
[[package]]
name = "proto_build_tools"
version = "0.1.0"
dependencies = [
"protoc-rust",
]
[[package]]
name = "protobuf"
version = "2.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf7e6d18738ecd0902d30d1ad232c9125985a3422929b16c65517b38adc14f96"
dependencies = [
"serde",
"serde_derive",
]
[[package]]
name = "protobuf-codegen"
version = "2.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aec1632b7c8f2e620343439a7dfd1f3c47b18906c4be58982079911482b5d707"
dependencies = [
"protobuf",
]
[[package]]
name = "protoc"
version = "2.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2ef1dc036942fac2470fdb8a911f125404ee9129e9e807f3d12d8589001a38f"
dependencies = [
"log",
"which",
]
[[package]]
name = "protoc-rust"
version = "2.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a9e315121c8e7e21396e940a3d27f92280a6d28e3931213bf6cbfea76c5cc94"
dependencies = [
"protobuf",
"protobuf-codegen",
"protoc",
"tempfile",
]
[[package]]
name = "protos"
version = "0.1.0"
dependencies = [
"kvm_sys",
"proto_build_tools",
"protobuf",
]
[[package]]
name = "qcow_utils"
version = "0.1.0"
dependencies = [
"base",
"disk",
"libc",
]
[[package]]
name = "quote"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
[[package]]
name = "quote"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rand"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
"rand_chacha",
"rand_core",
]
[[package]]
name = "rand_chacha"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
"rand_core",
]
[[package]]
name = "rand_core"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
dependencies = [
"getrandom",
]
[[package]]
name = "redox_syscall"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "534cfe58d6a18cc17120fbf4635d53d14691c1fe4d951064df9bd326178d7d5a"
dependencies = [
"bitflags",
]
[[package]]
name = "regex"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.6.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
[[package]]
name = "remain"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5704e2cda92fd54202f05430725317ba0ea7d0c96b246ca0a92e45177127ba3b"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "remove_dir_all"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
dependencies = [
"winapi",
]
[[package]]
name = "resources"
version = "0.1.0"
dependencies = [
"base",
"libc",
"remain",
"serde",
"thiserror",
]
[[package]]
name = "rustc-hash"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustix"
version = "0.36.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644"
dependencies = [
"bitflags",
"errno",
"io-lifetimes",
"libc",
"linux-raw-sys",
"windows-sys 0.45.0",
]
[[package]]
name = "rutabaga_gfx"
version = "0.1.1-alpha.1"
dependencies = [
"anyhow",
"cfg-if",
"data_model 0.1.1-alpha.1",
"libc",
"log",
rutabaga_gfx: nuke base dependency The base crate has some nifty abstractions but also pulls in things like minijail, audio_streams and various random items. This prevents true cross-platform interoperatibility, which requires the ability to upload to crates.io with relative ease. This change removes the base crate. The replacement strategy is two fold: - For things like SafeDescriptor which don't have adequate solutions on crates.io, just copy it internally. I think SafeDescriptor in particular -- since it works on bot Windows/Linux should probably be made into a separate crate long-term since it is generically valuable. Similarly for the Event and WaitContext APIs. For now, live with the duplication. - Otherwise, the nix crate does most of the Linux specific items. The cross-domain context type has a lot of dependencies on Linux sockets / epoll. This is refactored to look more like the Fuchsia solution, which uses std::sync::mspc channels to connect to an utility Wayland FIDL library. The rest of Rutabaga mostly relies just on SafeDescriptor and the ability to clone it. rutabaga_gralloc allows provides shared memory used via virtwl. Another thing to call out is zerocopy is now strongly versioned to the latest stable release on crates.io I also got rid of #[cfg(feature = "virgl_renderer_next")] on the renderer server fd, since it was complicating the refactoring. SafeDescriptor works everywhere and adding the #ifdef should be reserved for the lowest-levels of platform specific code when possible. Overall, this makes compiling on Fuchsia hosts much simpler. BUG=b:273555494 TEST= - run cross_domain context type, see Wayland apps - note there is a previous bug in cross domain when resizing windows, it occurs before this CL. The reason seems to be raciness and can likely be fixed gfxstream-like seqno. - run gfxstream + virgl on Linux, verify everything works. Change-Id: I7519f2b8ed0cd57c47980d4e76403057498cf064 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4353700 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2023-03-14 00:49:18 +00:00
"nix 0.26.2",
"pkg-config",
"remain",
"serde",
"thiserror",
rutabaga_gfx: nuke base dependency The base crate has some nifty abstractions but also pulls in things like minijail, audio_streams and various random items. This prevents true cross-platform interoperatibility, which requires the ability to upload to crates.io with relative ease. This change removes the base crate. The replacement strategy is two fold: - For things like SafeDescriptor which don't have adequate solutions on crates.io, just copy it internally. I think SafeDescriptor in particular -- since it works on bot Windows/Linux should probably be made into a separate crate long-term since it is generically valuable. Similarly for the Event and WaitContext APIs. For now, live with the duplication. - Otherwise, the nix crate does most of the Linux specific items. The cross-domain context type has a lot of dependencies on Linux sockets / epoll. This is refactored to look more like the Fuchsia solution, which uses std::sync::mspc channels to connect to an utility Wayland FIDL library. The rest of Rutabaga mostly relies just on SafeDescriptor and the ability to clone it. rutabaga_gralloc allows provides shared memory used via virtwl. Another thing to call out is zerocopy is now strongly versioned to the latest stable release on crates.io I also got rid of #[cfg(feature = "virgl_renderer_next")] on the renderer server fd, since it was complicating the refactoring. SafeDescriptor works everywhere and adding the #ifdef should be reserved for the lowest-levels of platform specific code when possible. Overall, this makes compiling on Fuchsia hosts much simpler. BUG=b:273555494 TEST= - run cross_domain context type, see Wayland apps - note there is a previous bug in cross domain when resizing windows, it occurs before this CL. The reason seems to be raciness and can likely be fixed gfxstream-like seqno. - run gfxstream + virgl on Linux, verify everything works. Change-Id: I7519f2b8ed0cd57c47980d4e76403057498cf064 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4353700 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2023-03-14 00:49:18 +00:00
"winapi",
"zerocopy",
]
[[package]]
name = "ryu"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
[[package]]
name = "sandbox"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"prebuilts",
"win_util",
"winapi",
]
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "scudo"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12bfcb1ca07a487406afea13bdb7a2f3cf88e67b39c20dfd64e1801909b5c688"
dependencies = [
"libc",
"scudo-proc-macros",
"scudo-sys",
]
[[package]]
name = "scudo-proc-macros"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3267c900aee8fbc8451235b70c5e2dae96bb19110eabc325be5d5dfed8e7461"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "scudo-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcdbdfb28236bf083b47d0babb07e486bb003ed85011072b023ea4ed27760ddb"
dependencies = [
"cc",
"libc",
]
[[package]]
name = "serde"
version = "1.0.140"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.140"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "serde_json"
version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "serde_keyvalue"
version = "0.1.0"
dependencies = [
"argh",
"nom",
"num-traits",
"remain",
"serde",
"serde_keyvalue_derive",
"thiserror",
]
[[package]]
name = "serde_keyvalue_derive"
version = "0.1.0"
dependencies = [
"argh",
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "shlex"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
[[package]]
name = "slab"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
dependencies = [
"autocfg",
]
[[package]]
name = "smallvec"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "strsim"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "swap"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"cros_tracing",
"data_model 0.1.1-alpha.1",
"jail",
"libc",
"libtest-mimic",
"num_cpus",
"once_cell",
"remain",
"serde",
"serde_json",
"sync",
"tempfile",
"thiserror",
"userfaultfd",
"userfaultfd-sys",
"vm_memory",
]
[[package]]
name = "syn"
version = "0.11.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
dependencies = [
"quote 0.3.15",
"synom",
"unicode-xid",
]
[[package]]
name = "syn"
version = "1.0.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"unicode-ident",
]
[[package]]
name = "sync"
version = "0.1.99"
[[package]]
name = "synom"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
dependencies = [
"unicode-xid",
]
[[package]]
name = "system_api"
version = "0.1.0"
dependencies = [
"dbus",
"protobuf",
]
[[package]]
name = "tempfile"
version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
dependencies = [
"cfg-if",
"fastrand",
"libc",
"redox_syscall",
"remove_dir_all",
"winapi",
]
[[package]]
name = "termcolor"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
dependencies = [
"winapi-util",
]
[[package]]
name = "textwrap"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[package]]
name = "thiserror"
version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "threadpool"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
dependencies = [
"num_cpus",
]
[[package]]
name = "time"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
dependencies = [
"libc",
"wasi 0.10.0+wasi-snapshot-preview1",
"winapi",
]
[[package]]
name = "toml"
version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
dependencies = [
"serde",
]
[[package]]
name = "tpm2"
version = "0.1.0"
dependencies = [
"tpm2-sys",
]
[[package]]
name = "tpm2-sys"
version = "0.1.0"
dependencies = [
"anyhow",
"pkg-config",
]
[[package]]
name = "tube_transporter"
version = "0.1.0"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"rand",
"serde",
"serde_json",
"thiserror",
"win_util",
"winapi",
]
[[package]]
name = "unicode-ident"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
[[package]]
name = "unicode-xid"
version = "0.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
[[package]]
name = "usb_sys"
version = "0.1.0"
dependencies = [
"base",
]
[[package]]
name = "usb_util"
version = "0.1.0"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"libc",
"remain",
"static_assertions",
"thiserror",
"usb_sys",
"zerocopy",
]
[[package]]
name = "userfaultfd"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fee2cdd3f8bdd0b98d7aa9ace35e7214a71888229d60c1cd1cd71b7c09c089d0"
dependencies = [
"bitflags",
"cfg-if",
"libc",
"nix 0.23.1",
"thiserror",
"userfaultfd-sys",
]
[[package]]
name = "userfaultfd-sys"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2cbcf2717fa856a7226499babbbccb07353ea2fc2b27defd38bd13b1227cc78"
dependencies = [
"bindgen 0.60.1",
"cc",
"cfg-if",
]
[[package]]
name = "uuid"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
dependencies = [
"getrandom",
"serde",
]
crosvm: add JSON configuration file support Add a new `--cfg` command-line parameter, which allows a single (for now) JSON configuration file to be specified and loaded as the base configuration for the VM, if the `config-file` feature is enabled (the default). Configuration options in the file can be overriden or extended by the regular command-line arguments. Typically, options that can be specified only once are overriden, and options that can be specified several times (like `--block`) are extended, allowing some devices of the same type to be declared in a configuration file and some more on the command-line. Due to a limitation in argh, which does not yet allow `Option<bool>` fields to be used as switches, merging more than a single configuration file is not reliable so we only support a single configuration file for now. This has been addressed upstream but not yet in a released version. Configuration file support for all the options of RunCommand increases the crosvm binary size compiled with the `chromeos` profile by 250KB. However, due to the currently limited set of options in the configuration file, the present CL increases the binary size by just 78KB. Without the `config-file` feature, this CL does not incur any binary size increase. Supported parameters as of this commit: * battery * block * executable-path * initrd * net * params * serial * socket BUG=b:218223240 TEST=`cargo run --features config-file -- run --cfg vm.json` boots the VM with parameters defined in vm.json. Change-Id: Ibb27556144ee766af81c178e5b94bd5117e102da Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3970368 Reviewed-by: Dennis Kempin <denniskempin@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Alexandre Courbot <acourbot@chromium.org> Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-10-20 06:40:27 +00:00
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "vfio_sys"
version = "0.1.0"
dependencies = [
"base",
"zerocopy",
]
[[package]]
name = "vhost"
version = "0.1.0"
dependencies = [
"base",
"libc",
"net_util",
"remain",
"static_assertions",
"thiserror",
"virtio_sys",
"vm_memory",
]
[[package]]
name = "virtio_sys"
version = "0.1.0"
dependencies = [
"base",
"data_model 0.1.1-alpha.1",
"zerocopy",
]
[[package]]
name = "vm_control"
version = "0.1.0"
dependencies = [
"anyhow",
"balloon_control",
"base",
"cfg-if",
"data_model 0.1.1-alpha.1",
"gdbstub",
"gdbstub_arch",
"hypervisor",
"libc",
"remain",
"resources",
"rutabaga_gfx",
"serde",
"serde_json",
"serde_keyvalue",
"swap",
"sync",
"thiserror",
"vm_memory",
"winapi",
]
[[package]]
name = "vm_memory"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"bitflags",
"cfg-if",
"cros_async",
"data_model 0.1.1-alpha.1",
"libc",
"remain",
"serde",
"serde_json",
"thiserror",
"zerocopy",
]
[[package]]
name = "vmm_vhost"
version = "0.1.0"
dependencies = [
"anyhow",
"base",
"bitflags",
"cfg-if",
"data_model 0.1.1-alpha.1",
"libc",
"remain",
"serde",
"serde_json",
"tempfile",
"thiserror",
"tube_transporter",
"zerocopy",
]
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "which"
version = "4.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae"
dependencies = [
"either",
"lazy_static",
"libc",
]
[[package]]
name = "widestring"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983"
[[package]]
name = "widestring"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
[[package]]
name = "win_audio"
version = "0.1.0"
dependencies = [
"anyhow",
"async-trait",
"audio_streams",
"audio_util",
"base",
"cros_async",
"libc",
"metrics",
"once_cell",
"prebuilts",
"sync",
"thiserror",
"win_util",
"winapi",
"wio",
]
[[package]]
name = "win_util"
version = "0.1.0"
dependencies = [
"anyhow",
"enumn",
"libc",
"once_cell",
"serde",
"winapi",
"windows",
]
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
"winapi",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a43e544233e20425d5a58e9671cf76d6aed9e6f211508c050facb29b188dc10f"
dependencies = [
"const-sha1",
"windows_gen",
"windows_macros",
]
[[package]]
name = "windows-sys"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows-sys"
version = "0.45.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
[[package]]
name = "windows_aarch64_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
[[package]]
name = "windows_gen"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc6283570a39b3594e31c64a498f48058758cc063eb087d972bb6476ad134a16"
[[package]]
name = "windows_i686_gnu"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
[[package]]
name = "windows_i686_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
[[package]]
name = "windows_macros"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f757e7665f81f33ace9f89b0f0fc3a7c770e24ff4fa1475c6503bb35b4524893"
dependencies = [
"syn 1.0.103",
"windows_gen",
]
[[package]]
name = "windows_x86_64_gnu"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
[[package]]
name = "windows_x86_64_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
[[package]]
name = "wio"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
dependencies = [
"winapi",
]
[[package]]
name = "wire_format_derive"
version = "0.1.0"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]
[[package]]
name = "wmi"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "757a458f9bfab0542c11feed99bd492cbe23add50515bd8eecf8c6973673d32d"
dependencies = [
"chrono",
"log",
"serde",
"thiserror",
"widestring 0.5.1",
"winapi",
]
[[package]]
name = "x86_64"
version = "0.1.0"
dependencies = [
"acpi_tables",
"anyhow",
"arch",
"base",
"cfg-if",
"chrono",
"cros_fdt",
"data_model 0.1.1-alpha.1",
"devices",
"gdbstub_arch",
"hypervisor",
"jail",
"kernel_cmdline",
"kernel_loader",
"libc",
"minijail",
"once_cell",
"rand",
"remain",
"resources",
"swap",
"sync",
"thiserror",
"vm_control",
"vm_memory",
"zerocopy",
]
[[package]]
name = "zerocopy"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "332f188cc1bcf1fe1064b8c58d150f497e697f49774aa846f2dc949d9a25f236"
dependencies = [
"byteorder",
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6505e6815af7de1746a08f69c69606bb45695a17149517680f3b2149713b19a3"
dependencies = [
"proc-macro2",
"quote 1.0.21",
"syn 1.0.103",
]