Lines Matching defs:rstate

176 destroy_restore_state(struct restore_state *rstate)
178 if (rstate == NULL) {
183 if (rstate->kdata_map != MAP_FAILED)
184 munmap(rstate->kdata_map, rstate->kdata_len);
186 if (rstate->kdata_fd > 0)
187 close(rstate->kdata_fd);
188 if (rstate->vmmem_fd > 0)
189 close(rstate->vmmem_fd);
191 if (rstate->meta_root_obj != NULL)
192 ucl_object_unref(rstate->meta_root_obj);
193 if (rstate->meta_parser != NULL)
194 ucl_parser_free(rstate->meta_parser);
198 load_vmmem_file(const char *filename, struct restore_state *rstate)
203 rstate->vmmem_fd = open(filename, O_RDONLY);
204 if (rstate->vmmem_fd < 0) {
209 err = fstat(rstate->vmmem_fd, &sb);
220 rstate->vmmem_len = sb.st_size;
225 if (rstate->vmmem_fd > 0)
226 close(rstate->vmmem_fd);
231 load_kdata_file(const char *filename, struct restore_state *rstate)
236 rstate->kdata_fd = open(filename, O_RDONLY);
237 if (rstate->kdata_fd < 0) {
242 err = fstat(rstate->kdata_fd, &sb);
253 rstate->kdata_len = sb.st_size;
254 rstate->kdata_map = mmap(NULL, rstate->kdata_len, PROT_READ,
255 MAP_SHARED, rstate->kdata_fd, 0);
256 if (rstate->kdata_map == MAP_FAILED) {
264 if (rstate->kdata_fd > 0)
265 close(rstate->kdata_fd);
270 load_metadata_file(const char *filename, struct restore_state *rstate)
298 rstate->meta_parser = parser;
299 rstate->meta_root_obj = (ucl_object_t *)obj;
310 load_restore_file(const char *filename, struct restore_state *rstate)
316 assert(rstate != NULL);
318 memset(rstate, 0, sizeof(*rstate));
319 rstate->kdata_map = MAP_FAILED;
321 err = load_vmmem_file(filename, rstate);
333 err = load_kdata_file(kdata_filename, rstate);
345 err = load_metadata_file(meta_filename, rstate);
354 destroy_restore_state(rstate);
391 lookup_check_dev(const char *dev_name, struct restore_state *rstate,
409 assert((uint64_t)file_offset + size <= rstate->kdata_len);
412 return ((uint8_t *)rstate->kdata_map + file_offset);
419 lookup_dev(const char *dev_name, const char *key, struct restore_state *rstate,
426 devs = ucl_object_lookup(rstate->meta_root_obj, key);
440 ret = lookup_check_dev(dev_name, rstate, obj, data_size);
449 lookup_basic_metadata_object(struct restore_state *rstate)
453 basic_meta_obj = ucl_object_lookup(rstate->meta_root_obj,
471 lookup_vmname(struct restore_state *rstate)
476 obj = lookup_basic_metadata_object(rstate);
485 lookup_memflags(struct restore_state *rstate)
490 obj = lookup_basic_metadata_object(rstate);
500 lookup_memsize(struct restore_state *rstate)
505 obj = lookup_basic_metadata_object(rstate);
518 lookup_guest_ncpus(struct restore_state *rstate)
523 obj = lookup_basic_metadata_object(rstate);
778 restore_vm_mem(struct vmctx *ctx, struct restore_state *rstate)
782 restored = vm_snapshot_mem(ctx, rstate->vmmem_fd, rstate->vmmem_len,
785 if (restored != rstate->vmmem_len)
792 vm_restore_kern_structs(struct vmctx *ctx, struct restore_state *rstate)
801 data = lookup_dev(info->struct_name, JSON_KERNEL_ARR_KEY, rstate, &size);
831 vm_restore_device(struct restore_state *rstate, vm_snapshot_dev_cb func,
839 dev_ptr = lookup_dev(name, JSON_DEV_ARR_KEY, rstate, &dev_size);
874 vm_restore_devices(struct restore_state *rstate)
880 ret = vm_restore_device(rstate, pci_snapshot, pdi->pi_name, pdi);
886 ret = vm_restore_device(rstate, atkbdc_snapshot, "atkbdc", NULL);