Revert^2 "Upgrade zerocopy to 0.7.5"
893738e5702b1f065826d9a31cef2122a502da66
Change-Id: Ib91e64e7a32e6b31fa0bde93dbfc411c60d33301
diff --git a/pvmfw/src/config.rs b/pvmfw/src/config.rs
index d0a6b7f..926f42b 100644
--- a/pvmfw/src/config.rs
+++ b/pvmfw/src/config.rs
@@ -21,11 +21,11 @@
use log::{info, warn};
use static_assertions::const_assert_eq;
use vmbase::util::RangeExt;
-use zerocopy::{FromBytes, LayoutVerified};
+use zerocopy::{FromBytes, FromZeroes, LayoutVerified};
/// Configuration data header.
#[repr(C, packed)]
-#[derive(Clone, Copy, Debug, FromBytes)]
+#[derive(Clone, Copy, Debug, FromZeroes, FromBytes)]
struct Header {
/// Magic number; must be `Header::MAGIC`.
magic: u32,
@@ -127,7 +127,7 @@
}
#[repr(packed)]
-#[derive(Clone, Copy, Debug, FromBytes)]
+#[derive(Clone, Copy, Debug, FromZeroes, FromBytes)]
struct HeaderEntry {
offset: u32,
size: u32,
@@ -147,7 +147,7 @@
}
#[repr(C, packed)]
-#[derive(Clone, Copy, Debug, Eq, FromBytes, PartialEq)]
+#[derive(Clone, Copy, Debug, Eq, FromZeroes, FromBytes, PartialEq)]
pub struct Version {
minor: u16,
major: u16,
diff --git a/pvmfw/src/gpt.rs b/pvmfw/src/gpt.rs
index 06bf994..71eb569 100644
--- a/pvmfw/src/gpt.rs
+++ b/pvmfw/src/gpt.rs
@@ -26,6 +26,7 @@
use vmbase::util::ceiling_div;
use vmbase::virtio::{pci, HalImpl};
use zerocopy::FromBytes;
+use zerocopy::FromZeroes;
type VirtIOBlk = pci::VirtIOBlk<HalImpl>;
@@ -156,7 +157,7 @@
type Lba = u64;
/// Structure as defined in release 2.10 of the UEFI Specification (5.3.2 GPT Header).
-#[derive(FromBytes)]
+#[derive(FromZeroes, FromBytes)]
#[repr(C, packed)]
struct Header {
signature: u64,
diff --git a/pvmfw/src/instance.rs b/pvmfw/src/instance.rs
index 22839cb..f2cd6a3 100644
--- a/pvmfw/src/instance.rs
+++ b/pvmfw/src/instance.rs
@@ -35,6 +35,7 @@
use vmbase::virtio::HalImpl;
use zerocopy::AsBytes;
use zerocopy::FromBytes;
+use zerocopy::FromZeroes;
pub enum Error {
/// Unexpected I/O error while accessing the underlying disk.
@@ -174,7 +175,7 @@
}
}
-#[derive(FromBytes)]
+#[derive(FromZeroes, FromBytes)]
#[repr(C, packed)]
struct Header {
magic: [u8; Header::MAGIC.len()],
@@ -258,7 +259,7 @@
/// Marks the start of an instance.img entry.
///
/// Note: Virtualization/microdroid_manager/src/instance.rs uses the name "partition".
-#[derive(AsBytes, FromBytes)]
+#[derive(AsBytes, FromZeroes, FromBytes)]
#[repr(C, packed)]
struct EntryHeader {
uuid: u128,
@@ -279,7 +280,7 @@
}
}
-#[derive(AsBytes, FromBytes)]
+#[derive(AsBytes, FromZeroes, FromBytes)]
#[repr(C)]
struct EntryBody {
code_hash: Hash,