libvirt/src/qemu/qemu_processpriv.h
Chris Venteicher 5b13da5ca2 qemu_process: Enter QMP command mode when starting QEMU Process
qemuProcessQMPStart starts a QEMU process and monitor connection that
can be used by multiple functions possibly for multiple QMP commands.

The QMP exchange to exit capabilities negotiation mode and enter command
mode can only be performed once after the monitor connection is
established.

Move responsibility for entering QMP command mode into the
qemuProcessQMP code so multiple functions can issue QMP commands in
arbitrary orders.

This also simplifies the functions using the connection provided by
qemuProcessQMPStart to issue QMP commands.

Test code now needs to call qemuMonitorSetCapabilities to send the
message to switch to command mode because the test code does not use the
qemuProcessQMP command that internally calls qemuMonitorSetCapabilities.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:49 +01:00

44 lines
1.4 KiB
C

/*
* qemu_processpriv.h: private declarations for QEMU process management
*
* Copyright (C) 2013 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
*/
#ifndef LIBVIRT_QEMU_PROCESSPRIV_H_ALLOW
# error "qemu_process_priv.h may only be included by qemu_process.c or test suites"
#endif /* LIBVIRT_QEMU_PROCESSPRIV_H_ALLOW */
#ifndef LIBVIRT_QEMU_PROCESSPRIV_H
# define LIBVIRT_QEMU_PROCESSPRIV_H
# include "domain_conf.h"
# include "qemu_monitor.h"
/*
* This header file should never be used outside unit tests.
*/
int qemuProcessHandleDeviceDeleted(qemuMonitorPtr mon,
virDomainObjPtr vm,
const char *devAlias,
void *opaque);
int qemuProcessQMPInitMonitor(qemuMonitorPtr mon);
#endif /* LIBVIRT_QEMU_PROCESSPRIV_H */