/* * This file is subject to the terms and conditions of the GNU General * Public License. See the file "COPYING" in the main directory of * this archive for more details. * * Copyright (C) 2005 by Christian Limpach * */ #include #include #include #include #include #include int main(int argc, char **argv) { unsigned int domid, store_evtchn, console_evtchn; unsigned int hvm, pae, apic; int xc_fd, io_fd, ret; int superpages; unsigned long store_mfn, console_mfn; if ( (argc != 8) && (argc != 9) ) errx(1, "usage: %s iofd domid store_evtchn " "console_evtchn hvm pae apic [superpages]", argv[0]); xc_fd = xc_interface_open(); if ( xc_fd < 0 ) errx(1, "failed to open control interface"); io_fd = atoi(argv[1]); domid = atoi(argv[2]); store_evtchn = atoi(argv[3]); console_evtchn = atoi(argv[4]); hvm = atoi(argv[5]); pae = atoi(argv[6]); apic = atoi(argv[7]); if ( argc == 9 ) superpages = atoi(argv[8]); else superpages = 0; ret = xc_domain_restore(xc_fd, io_fd, domid, store_evtchn, &store_mfn, console_evtchn, &console_mfn, hvm, pae, superpages); if ( ret == 0 ) { printf("store-mfn %li\n", store_mfn); if ( !hvm ) printf("console-mfn %li\n", console_mfn); fflush(stdout); } xc_interface_close(xc_fd); return ret; }