mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
Add support of reading and writing compressed clusters. Support zlib and zstd compressions. L2 cache: store entire L2 entries, not only standard cluster addresses. Read path. Offsets of compressed clusters cannot be determined, therefore replace QcowFile.file_offset_read() with QcowFile.file_read(). This method reads the cluster, decompresses it if necessary and returns the data to the caller. Write path. QcowFile.file_offset_write(): since writing to compressed clusters is not generally possible, allocate a new standard (non-compressed) cluster if compressed L2 entry is encountered; then decompress compressed cluster into new cluster; then return offset inside new cluster to the caller. Processing of standard clusters is not changed. Signed-off-by: Eugene Korenevsky <ekorenevsky@aliyun.com>
36 lines
845 B
TOML
36 lines
845 B
TOML
[package]
|
|
authors = ["The Chromium OS Authors", "The Cloud Hypervisor Authors"]
|
|
edition.workspace = true
|
|
name = "block"
|
|
version = "0.1.0"
|
|
|
|
[features]
|
|
default = []
|
|
io_uring = ["dep:io-uring"]
|
|
|
|
[dependencies]
|
|
byteorder = { workspace = true }
|
|
crc-any = "2.5.0"
|
|
flate2 = "1.0"
|
|
io-uring = { version = "0.7.10", optional = true }
|
|
libc = { workspace = true }
|
|
log = { workspace = true }
|
|
remain = "0.2.15"
|
|
serde = { workspace = true, features = ["derive"] }
|
|
smallvec = "1.15.1"
|
|
thiserror = { workspace = true }
|
|
uuid = { workspace = true, features = ["v4"] }
|
|
virtio-bindings = { workspace = true }
|
|
virtio-queue = { workspace = true }
|
|
vm-memory = { workspace = true, features = [
|
|
"backend-atomic",
|
|
"backend-bitmap",
|
|
"backend-mmap",
|
|
] }
|
|
vm-virtio = { path = "../vm-virtio" }
|
|
vmm-sys-util = { workspace = true }
|
|
zstd = "0.13"
|
|
|
|
[lints]
|
|
workspace = true
|