Provides the ability for the guest to communicate with user-provided code inside QEMU itself, using a lightweight mechanism.
See first commit for a full description. Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> --- Changes in v2: * Rebase on 1c8a881daaca6fe0646a425b0970fb3ad25f6732 from master. * Multiple documentation fixes and clarifications. * Fixed a couple of bugs when freeing memory. * Actually call 'backdoor_fini' in user mode when exiting. * Try to auto-detect the backdoor device in the example guest library when running a full-system linux. * Rewrite code to read and write into the control channel in softmmu mode, making it much clearer and leaving endianness handling up to the user-provided backdoor callbacks. Lluís Vilanova (5): backdoor: Add documentation backdoor: Add build infrastructure backdoor: [*-user] Add QEMU-side proxy to "libbackdoor.a" backdoor: [softmmu] Add QEMU-side proxy to "libbackdoor.a" backdoor: Add guest-side library Makefile | 4 + Makefile.objs | 21 ++++ Makefile.target | 4 + backdoor/guest/Makefile | 18 ++++ backdoor/guest/common.c | 205 ++++++++++++++++++++++++++++++++++++++++ backdoor/guest/qemu-backdoor.h | 59 ++++++++++++ backdoor/qemu/qemu-backdoor.h | 31 ++++++ backdoor/qemu/softmmu.c | 186 ++++++++++++++++++++++++++++++++++++ backdoor/qemu/user.c | 202 +++++++++++++++++++++++++++++++++++++++ backdoor/qemu/user.h | 30 ++++++ bsd-user/main.c | 26 +++++ bsd-user/mmap.c | 7 + bsd-user/syscall.c | 13 +++ configure | 35 +++++++ darwin-user/main.c | 26 +++++ darwin-user/mmap.c | 7 + docs/backdoor.txt | 167 +++++++++++++++++++++++++++++++++ hw/pci.h | 1 linux-user/main.c | 32 ++++++ linux-user/mmap.c | 7 + linux-user/syscall.c | 10 ++ 21 files changed, 1089 insertions(+), 2 deletions(-) create mode 100644 backdoor/guest/Makefile create mode 100644 backdoor/guest/common.c create mode 100644 backdoor/guest/qemu-backdoor.h create mode 100644 backdoor/qemu/qemu-backdoor.h create mode 100644 backdoor/qemu/softmmu.c create mode 100644 backdoor/qemu/user.c create mode 100644 backdoor/qemu/user.h create mode 100644 docs/backdoor.txt