mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
Access to QMP of QEMU in Linux stubdomain is possible over vchan connection. Handle the actual vchan connection in a separate process (vchan-socket-proxy). This simplified integration with QMP (already quite complex), but also allows preliminary filtering of (potentially malicious) QMP input. Since only one client can be connected to vchan server at the same time and it is not enforced by the libxenvchan itself, additional client-side locking is needed. It is implicitly implemented by vchan-socket-proxy, as it handle only one connection at a time. Note that qemu supports only one simultaneous client on a control socket anyway (but in UNIX socket case, it enforce it server-side), so it doesn't add any extra limitation. libxl qmp client code already has locking to handle concurrent access attempts to the same qemu qmp interface. Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Squash in changes of regenerated autotools files. Kill the vchan-socket-proxy so we don't leak the daemonized processes. libxl__stubdomain_is_linux_running() works against the guest_domid, but the xenstore path is beneath the stubdomain. This leads to the use of libxl_is_stubdom in addition to libxl__stubdomain_is_linux_running() so that the stubdomain calls kill for the qmp-proxy. Also call libxl__qmp_cleanup() to remove the unix sockets used by vchan-socket-proxy. vchan-socket-proxy only creates qmp-libxl-$domid, and libxl__qmp_cleanup removes that as well as qmp-libxenstat-$domid. However, it tolerates ENOENT, and a stray qmp-libxenstat-$domid should not exist. Signed-off-by: Jason Andryuk <jandryuk@gmail.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
139 lines
3.4 KiB
C
139 lines
3.4 KiB
C
/* config.h.in. Generated from configure.ac by autoheader. */
|
|
|
|
/* Enabling support partial device tree in libxl */
|
|
#undef ENABLE_PARTIAL_DEVICE_TREE
|
|
|
|
/* Define to 1 if you have the declaration of `fdt_first_subnode', and to 0 if
|
|
you don't. */
|
|
#undef HAVE_DECL_FDT_FIRST_SUBNODE
|
|
|
|
/* Define to 1 if you have the declaration of `fdt_next_subnode', and to 0 if
|
|
you don't. */
|
|
#undef HAVE_DECL_FDT_NEXT_SUBNODE
|
|
|
|
/* Define to 1 if you have the declaration of `fdt_property_u32', and to 0 if
|
|
you don't. */
|
|
#undef HAVE_DECL_FDT_PROPERTY_U32
|
|
|
|
/* Define to 1 if you have the `fdt_first_subnode' function. */
|
|
#undef HAVE_FDT_FIRST_SUBNODE
|
|
|
|
/* Define to 1 if you have the `fdt_next_subnode' function. */
|
|
#undef HAVE_FDT_NEXT_SUBNODE
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#undef HAVE_INTTYPES_H
|
|
|
|
/* Define to 1 if you have the `fdt' library (-lfdt). */
|
|
#undef HAVE_LIBFDT
|
|
|
|
/* Define to 1 if you have the `lzma' library (-llzma). */
|
|
#undef HAVE_LIBLZMA
|
|
|
|
/* Define to 1 if you have the `yajl' library (-lyajl). */
|
|
#undef HAVE_LIBYAJL
|
|
|
|
/* Define to 1 if you have the `z' library (-lz). */
|
|
#undef HAVE_LIBZ
|
|
|
|
/* Define to 1 if you have the <memory.h> header file. */
|
|
#undef HAVE_MEMORY_H
|
|
|
|
/* Qemu traditional enabled */
|
|
#undef HAVE_QEMU_TRADITIONAL
|
|
|
|
/* ROMBIOS enabled */
|
|
#undef HAVE_ROMBIOS
|
|
|
|
/* Define to 1 if you have the <stdint.h> header file. */
|
|
#undef HAVE_STDINT_H
|
|
|
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
#undef HAVE_STDLIB_H
|
|
|
|
/* Define to 1 if you have the <strings.h> header file. */
|
|
#undef HAVE_STRINGS_H
|
|
|
|
/* Define to 1 if you have the <string.h> header file. */
|
|
#undef HAVE_STRING_H
|
|
|
|
/* Systemd available and enabled */
|
|
#undef HAVE_SYSTEMD
|
|
|
|
/* Define to 1 if you have the <sys/eventfd.h> header file. */
|
|
#undef HAVE_SYS_EVENTFD_H
|
|
|
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
#undef HAVE_SYS_STAT_H
|
|
|
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
#undef HAVE_SYS_TYPES_H
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
#undef HAVE_UNISTD_H
|
|
|
|
/* Define to 1 if you have the <utmp.h> header file. */
|
|
#undef HAVE_UTMP_H
|
|
|
|
/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
|
|
#undef HAVE_VALGRIND_MEMCHECK_H
|
|
|
|
/* Define to 1 if you have the <yajl/yajl_version.h> header file. */
|
|
#undef HAVE_YAJL_YAJL_VERSION_H
|
|
|
|
/* Define curses header to use */
|
|
#undef INCLUDE_CURSES_H
|
|
|
|
/* Define extfs header to use */
|
|
#undef INCLUDE_EXTFS_H
|
|
|
|
/* libutil header file name */
|
|
#undef INCLUDE_LIBUTIL_H
|
|
|
|
/* IPXE path */
|
|
#undef IPXE_PATH
|
|
|
|
/* OVMF path */
|
|
#undef OVMF_PATH
|
|
|
|
/* Define to the address where bug reports for this package should be sent. */
|
|
#undef PACKAGE_BUGREPORT
|
|
|
|
/* Define to the full name of this package. */
|
|
#undef PACKAGE_NAME
|
|
|
|
/* Define to the full name and version of this package. */
|
|
#undef PACKAGE_STRING
|
|
|
|
/* Define to the one symbol short name of this package. */
|
|
#undef PACKAGE_TARNAME
|
|
|
|
/* Define to the home page for this package. */
|
|
#undef PACKAGE_URL
|
|
|
|
/* Define to the version of this package. */
|
|
#undef PACKAGE_VERSION
|
|
|
|
/* Qemu Xen path */
|
|
#undef QEMU_XEN_PATH
|
|
|
|
/* SeaBIOS path */
|
|
#undef SEABIOS_PATH
|
|
|
|
/* Define to 1 if you have the ANSI C header files. */
|
|
#undef STDC_HEADERS
|
|
|
|
/* QMP proxy path */
|
|
#undef STUBDOM_QMP_PROXY_PATH
|
|
|
|
/* Enable large inode numbers on Mac OS X 10.5. */
|
|
#ifndef _DARWIN_USE_64_BIT_INODE
|
|
# define _DARWIN_USE_64_BIT_INODE 1
|
|
#endif
|
|
|
|
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
#undef _FILE_OFFSET_BITS
|
|
|
|
/* Define for large files, on AIX-style hosts. */
|
|
#undef _LARGE_FILES
|