@@ -7,7 +7,7 @@ use std::path::PathBuf;
77use fc_utils:: u64_to_usize;
88use semver:: Version ;
99use vmm:: persist:: MicrovmState ;
10- use vmm:: snapshot:: Snapshot ;
10+ use vmm:: snapshot:: { Snapshot , SnapshotError , SnapshotHdr } ;
1111
1212// Some errors are only used in aarch64 code
1313#[ allow( unused) ]
@@ -26,11 +26,13 @@ pub enum UtilsError {
2626}
2727
2828#[ allow( unused) ]
29- pub fn open_vmstate ( snapshot_path : & PathBuf ) -> Result < ( MicrovmState , Version ) , UtilsError > {
29+ pub fn open_vmstate ( snapshot_path : & PathBuf ) -> Result < Snapshot < MicrovmState > , UtilsError > {
3030 let mut snapshot_reader = File :: open ( snapshot_path) . map_err ( UtilsError :: VmStateFileOpen ) ?;
3131 let metadata = std:: fs:: metadata ( snapshot_path) . map_err ( UtilsError :: VmStateFileMeta ) ?;
3232 let snapshot_len = u64_to_usize ( metadata. len ( ) ) ;
33- Snapshot :: load ( & mut snapshot_reader, snapshot_len) . map_err ( UtilsError :: VmStateLoad )
33+
34+ let snapshot: Result < Snapshot < MicrovmState > , UtilsError > = Snapshot :: load ( & mut snapshot_reader, snapshot_len) . map_err ( UtilsError :: VmStateLoad ) ;
35+ snapshot
3436}
3537
3638// This method is used only in aarch64 code so far
@@ -46,9 +48,10 @@ pub fn save_vmstate(
4648 . truncate ( true )
4749 . open ( output_path)
4850 . map_err ( UtilsError :: OutputFileOpen ) ?;
49- let mut snapshot = Snapshot :: new ( version) ;
51+ let snapshot_hdr = SnapshotHdr :: new ( version) ;
52+ let snapshot = Snapshot :: new ( snapshot_hdr, microvm_state) ;
5053 snapshot
51- . save ( & mut output_file, & microvm_state )
54+ . save ( & mut output_file)
5255 . map_err ( UtilsError :: VmStateSave ) ?;
5356 Ok ( ( ) )
5457}
0 commit comments