Snap for 10958510 from 28b7934249c2885db8b561f1439d74663fcdce93 to 24Q1-release

Change-Id: I9aeae790a0a160283e34ae125764c499fa8d8512
diff --git a/rust/bindgen.sh b/rust/bindgen.sh
index b854d10..6e75618 100755
--- a/rust/bindgen.sh
+++ b/rust/bindgen.sh
@@ -38,7 +38,7 @@
 # generated rust bindings really don't need.
 BLOCKED_ITEMS_RE="_.+|.?INT.+|PTR.+|ATOMIC.+|.+SOURCE|.+_H|SIG_.+|SIZE_.+|.?CHAR.+"
 CUSTOM_STRUCT_RE="(vendor_)?(boot_img_hdr|ramdisk_table_entry)_v\d+"
-CUSTOM_STRUCT_DERIVES="AsBytes,FromBytes,PartialEq,Copy,Clone,Debug"
+CUSTOM_STRUCT_DERIVES="AsBytes,FromBytes,FromZeroes,PartialEq,Copy,Clone,Debug"
 BINDGEN_FLAGS="--use-core --with-derive-default"
 BOOTIMG_PRIV=${BOOTIMG_DIR}/rust/bootimg_priv.rs
 
@@ -69,7 +69,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-use zerocopy::{AsBytes, FromBytes};
+use zerocopy::{AsBytes, FromBytes, FromZeroes};
 
 EOF
 
diff --git a/rust/bootimg_priv.rs b/rust/bootimg_priv.rs
index fbd883c..15fd0d9 100644
--- a/rust/bootimg_priv.rs
+++ b/rust/bootimg_priv.rs
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-use zerocopy::{AsBytes, FromBytes};
+use zerocopy::{AsBytes, FromBytes, FromZeroes};
 
 /* automatically generated by rust-bindgen 0.65.1 */
 
@@ -32,7 +32,7 @@
 pub const VENDOR_RAMDISK_NAME_SIZE: u32 = 32;
 pub const VENDOR_RAMDISK_TABLE_ENTRY_BOARD_ID_SIZE: u32 = 16;
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct boot_img_hdr_v0 {
     pub magic: [u8; 8usize],
     pub kernel_size: u32,
@@ -151,7 +151,7 @@
 }
 pub type boot_img_hdr = boot_img_hdr_v0;
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct boot_img_hdr_v1 {
     pub _base: boot_img_hdr_v0,
     pub recovery_dtbo_size: u32,
@@ -208,7 +208,7 @@
     }
 }
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct boot_img_hdr_v2 {
     pub _base: boot_img_hdr_v1,
     pub dtb_size: u32,
@@ -249,7 +249,7 @@
     }
 }
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct boot_img_hdr_v3 {
     pub magic: [u8; 8usize],
     pub kernel_size: u32,
@@ -325,7 +325,7 @@
     }
 }
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct vendor_boot_img_hdr_v3 {
     pub magic: [u8; 8usize],
     pub header_version: u32,
@@ -471,7 +471,7 @@
     }
 }
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct boot_img_hdr_v4 {
     pub _base: boot_img_hdr_v3,
     pub signature_size: u32,
@@ -506,7 +506,7 @@
     }
 }
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct vendor_boot_img_hdr_v4 {
     pub _base: vendor_boot_img_hdr_v3,
     pub vendor_ramdisk_table_size: u32,
@@ -584,7 +584,7 @@
     }
 }
 #[repr(C, packed)]
-#[derive(AsBytes, FromBytes, PartialEq, Copy, Clone, Debug)]
+#[derive(AsBytes, FromBytes, FromZeroes, PartialEq, Copy, Clone, Debug)]
 pub struct vendor_ramdisk_table_entry_v4 {
     pub ramdisk_size: u32,
     pub ramdisk_offset: u32,