These two patches introduce a Filesystem in Userspace (FUSE) and add a "fuse-mount" command to support this filesystem.
(1) When running the command "dump-guest-memory", we usually need a large space of storage to save the dumpfile into disk. It costs not only much time to save a file in some of hard disks, but also costs limited storage in host. In order to reduce the saving time and make it convenient for users to dump the guest memory, we introduce a Filesystem in Userspace (FUSE) to save the dump file in RAM. It is selectable in the configure file, adding a compiling of package "fuse-devel". It doesn't change the way of dumping guest memory. qemu_fuse_main(int argc, char *argv[]) is the API for qemu code to mount this filesystem. And it only supports these operations just for dumping guest memory. static struct fuse_operations qemu_fuse_oper = { .getattr = qemu_fuse_getattr, .fgetattr = qemu_fuse_fgetattr, .readdir = qemu_fuse_readdir, .create = qemu_fuse_create, .open = qemu_fuse_open, .read = qemu_fuse_read, .write = qemu_fuse_write, .unlink = qemu_fuse_unlink, }; (2) command "fuse-mount" It can mount or unmount the filesystem with both hmp and qmp commands. It calls the API function qemu_fuse_main(int argc, char *argv[]). Nan Li (2): Dump: introduce a Filesystem in Userspace Dump: add command "fuse-mount" Makefile.target | 1 + configure | 34 +++++ dump.c | 48 +++++++ fuse-mem.c | 376 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ fuse-mem.h | 2 + hmp-commands.hx | 19 +++ hmp.c | 12 ++ hmp.h | 1 + qapi-schema.json | 15 +++ qmp-commands.hx | 31 +++++ 10 files changed, 539 insertions(+) create mode 100644 fuse-mem.c create mode 100644 fuse-mem.h -- 1.8.4.5