2014-10-16 10:01:19 +00:00
|
|
|
/*
|
|
|
|
* driver-hypervisor.h: entry points for hypervisor drivers
|
|
|
|
*
|
2015-02-09 21:16:55 +00:00
|
|
|
* Copyright (C) 2006-2015 Red Hat, Inc.
|
2014-10-16 10:01:19 +00:00
|
|
|
*
|
|
|
|
* 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/>.
|
|
|
|
*/
|
|
|
|
|
2019-06-07 20:20:12 +00:00
|
|
|
#pragma once
|
2014-10-16 10:01:19 +00:00
|
|
|
|
2019-06-07 20:20:12 +00:00
|
|
|
#ifndef __VIR_DRIVER_H_INCLUDES___
|
|
|
|
# error "Don't include this file directly, only use driver.h"
|
|
|
|
#endif
|
2014-10-16 10:01:19 +00:00
|
|
|
|
2018-03-27 16:24:44 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvConnectURIProbe)(char **uri);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef virDrvOpenStatus
|
|
|
|
(*virDrvConnectOpen)(virConnectPtr conn,
|
|
|
|
virConnectAuthPtr auth,
|
2021-03-11 07:16:13 +00:00
|
|
|
virConf *conf,
|
2014-10-16 10:01:19 +00:00
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectClose)(virConnectPtr conn);
|
|
|
|
|
api: introduce virConnectSetIdentity for passing uid, gid, selinux info
When using the fine grained access control mechanism for APIs, when a
client connects to libvirtd, the latter will fetch the uid, gid, selinux
info of the remote client on the UNIX domain socket. This is then used
as the identity when checking ACLs.
With the new split daemons things are a bit more complicated. The user
can connect to virtproxyd, which in turn connects to virtqemud. When
virtqemud requests the identity over the UNIX domain socket, it will
get the identity that virtproxyd is running as, not the identity of
the real end user/application.
virproxyd knows what the real identity is, and needs to be able to
forward this information to virtqemud. The virConnectSetIdentity API
provides a mechanism for doing this. Obviously virtqemud should not
accept such identity overrides from any client, it must only honour it
from a trusted client, aka one running as the same uid/gid as itself.
The typed parameters exposed in the API are the same as those currently
supported by the internal virIdentity class, with a few small name
changes.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-24 11:38:21 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvConnectSetIdentity)(virConnectPtr conn,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvConnectSupportsFeature)(virConnectPtr conn,
|
|
|
|
int feature);
|
|
|
|
|
|
|
|
typedef const char *
|
|
|
|
(*virDrvConnectGetType)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectGetVersion)(virConnectPtr conn,
|
|
|
|
unsigned long *hvVer);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectGetLibVersion)(virConnectPtr conn,
|
|
|
|
unsigned long *libVer);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectGetHostname)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectGetURI)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectGetSysinfo)(virConnectPtr conn,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectGetMaxVcpus)(virConnectPtr conn,
|
|
|
|
const char *type);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetInfo)(virConnectPtr conn,
|
|
|
|
virNodeInfoPtr info);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectGetCapabilities)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectGetDomainCapabilities)(virConnectPtr conn,
|
|
|
|
const char *emulatorbin,
|
|
|
|
const char *arch,
|
|
|
|
const char *machine,
|
|
|
|
const char *virttype,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectListDomains)(virConnectPtr conn,
|
|
|
|
int *ids,
|
|
|
|
int maxids);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectNumOfDomains)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainCreateXML)(virConnectPtr conn,
|
|
|
|
const char *xmlDesc,
|
|
|
|
unsigned int flags);
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainCreateXMLWithFiles)(virConnectPtr conn,
|
|
|
|
const char *xmlDesc,
|
|
|
|
unsigned int nfiles,
|
|
|
|
int *files,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainLookupByID)(virConnectPtr conn,
|
|
|
|
int id);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainLookupByUUID)(virConnectPtr conn,
|
|
|
|
const unsigned char *uuid);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainLookupByName)(virConnectPtr conn,
|
|
|
|
const char *name);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSuspend)(virDomainPtr domain);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainResume)(virDomainPtr domain);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainPMSuspendForDuration)(virDomainPtr,
|
|
|
|
unsigned int target,
|
|
|
|
unsigned long long duration,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainPMWakeup)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainShutdown)(virDomainPtr domain);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainReboot)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainReset)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainDestroy)(virDomainPtr domain);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainDestroyFlags)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainGetOSType)(virDomainPtr domain);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainGetHostname)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef unsigned long long
|
|
|
|
(*virDrvDomainGetMaxMemory)(virDomainPtr domain);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetMaxMemory)(virDomainPtr domain,
|
|
|
|
unsigned long memory);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetMemory)(virDomainPtr domain,
|
|
|
|
unsigned long memory);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetMemoryFlags)(virDomainPtr domain,
|
|
|
|
unsigned long memory,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetMemoryStatsPeriod)(virDomainPtr domain,
|
|
|
|
int period,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetMemoryParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetMemoryParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetNumaParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetNumaParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetBlkioParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetBlkioParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetInfo)(virDomainPtr domain,
|
|
|
|
virDomainInfoPtr info);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetState)(virDomainPtr domain,
|
|
|
|
int *state,
|
|
|
|
int *reason,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetControlInfo)(virDomainPtr domain,
|
|
|
|
virDomainControlInfoPtr info,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSave)(virDomainPtr domain,
|
|
|
|
const char *to);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSaveFlags)(virDomainPtr domain,
|
|
|
|
const char *to,
|
|
|
|
const char *dxml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2022-05-06 13:10:51 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSaveParams)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainRestore)(virConnectPtr conn,
|
|
|
|
const char *from);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainRestoreFlags)(virConnectPtr conn,
|
|
|
|
const char *from,
|
|
|
|
const char *dxml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2022-05-06 13:10:52 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainRestoreParams)(virConnectPtr conn,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainSaveImageGetXMLDesc)(virConnectPtr conn,
|
|
|
|
const char *file,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSaveImageDefineXML)(virConnectPtr conn,
|
|
|
|
const char *file,
|
|
|
|
const char *dxml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainCoreDump)(virDomainPtr domain,
|
|
|
|
const char *to,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainCoreDumpWithFormat)(virDomainPtr domain,
|
|
|
|
const char *to,
|
|
|
|
unsigned int dumpformat,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainScreenshot)(virDomainPtr domain,
|
|
|
|
virStreamPtr stream,
|
|
|
|
unsigned int screen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainGetXMLDesc)(virDomainPtr dom,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectDomainXMLFromNative)(virConnectPtr conn,
|
|
|
|
const char *nativeFormat,
|
|
|
|
const char *nativeConfig,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectDomainXMLToNative)(virConnectPtr conn,
|
|
|
|
const char *nativeFormat,
|
|
|
|
const char *domainXml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectListDefinedDomains)(virConnectPtr conn,
|
|
|
|
char **const names,
|
|
|
|
int maxnames);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectListAllDomains)(virConnectPtr conn,
|
|
|
|
virDomainPtr **domains,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectNumOfDefinedDomains)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainCreate)(virDomainPtr dom);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainCreateWithFlags)(virDomainPtr dom,
|
|
|
|
unsigned int flags);
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainCreateWithFiles)(virDomainPtr dom,
|
|
|
|
unsigned int nfiles,
|
|
|
|
int *files,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainDefineXML)(virConnectPtr conn,
|
|
|
|
const char *xml);
|
2014-11-18 13:56:20 +00:00
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainDefineXMLFlags)(virConnectPtr conn,
|
|
|
|
const char *xml,
|
|
|
|
unsigned int flags);
|
2014-10-16 10:01:19 +00:00
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainUndefine)(virDomainPtr dom);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainUndefineFlags)(virDomainPtr dom,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetVcpus)(virDomainPtr domain,
|
|
|
|
unsigned int nvcpus);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetVcpusFlags)(virDomainPtr domain,
|
|
|
|
unsigned int nvcpus,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetVcpusFlags)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainPinVcpu)(virDomainPtr domain,
|
|
|
|
unsigned int vcpu,
|
|
|
|
unsigned char *cpumap,
|
|
|
|
int maplen);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainPinVcpuFlags)(virDomainPtr domain,
|
|
|
|
unsigned int vcpu,
|
|
|
|
unsigned char *cpumap,
|
|
|
|
int maplen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetVcpuPinInfo)(virDomainPtr domain,
|
|
|
|
int ncpumaps,
|
|
|
|
unsigned char *cpumaps,
|
|
|
|
int maplen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainPinEmulator)(virDomainPtr domain,
|
|
|
|
unsigned char *cpumap,
|
|
|
|
int maplen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetEmulatorPinInfo)(virDomainPtr domain,
|
|
|
|
unsigned char *cpumaps,
|
|
|
|
int maplen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetVcpus)(virDomainPtr domain,
|
|
|
|
virVcpuInfoPtr info,
|
|
|
|
int maxinfo,
|
|
|
|
unsigned char *cpumaps,
|
|
|
|
int maplen);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetMaxVcpus)(virDomainPtr domain);
|
|
|
|
|
2015-02-09 21:16:55 +00:00
|
|
|
typedef int
|
2015-03-25 16:02:26 +00:00
|
|
|
(*virDrvDomainGetIOThreadInfo)(virDomainPtr domain,
|
|
|
|
virDomainIOThreadInfoPtr **info,
|
|
|
|
unsigned int flags);
|
2015-02-09 21:16:55 +00:00
|
|
|
|
2015-03-05 19:14:27 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainPinIOThread)(virDomainPtr domain,
|
|
|
|
unsigned int iothread_id,
|
|
|
|
unsigned char *cpumap,
|
|
|
|
int maplen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2015-03-25 21:03:49 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAddIOThread)(virDomainPtr domain,
|
|
|
|
unsigned int iothread_id,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainDelIOThread)(virDomainPtr domain,
|
|
|
|
unsigned int iothread_id,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2018-10-03 21:57:56 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetIOThreadParams)(virDomainPtr domain,
|
|
|
|
unsigned int iothread_id,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetSecurityLabel)(virDomainPtr domain,
|
|
|
|
virSecurityLabelPtr seclabel);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetSecurityLabelList)(virDomainPtr domain,
|
|
|
|
virSecurityLabelPtr* seclabels);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetSecurityModel)(virConnectPtr conn,
|
|
|
|
virSecurityModelPtr secmodel);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAttachDevice)(virDomainPtr domain,
|
|
|
|
const char *xml);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAttachDeviceFlags)(virDomainPtr domain,
|
|
|
|
const char *xml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainDetachDevice)(virDomainPtr domain,
|
|
|
|
const char *xml);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainDetachDeviceFlags)(virDomainPtr domain,
|
|
|
|
const char *xml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainUpdateDeviceFlags)(virDomainPtr domain,
|
|
|
|
const char *xml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2018-05-21 11:15:21 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainDetachDeviceAlias)(virDomainPtr domain,
|
|
|
|
const char *alias,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetAutostart)(virDomainPtr domain,
|
|
|
|
int *autostart);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetAutostart)(virDomainPtr domain,
|
|
|
|
int autostart);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainGetSchedulerType)(virDomainPtr domain,
|
|
|
|
int *nparams);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetSchedulerParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetSchedulerParametersFlags)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetSchedulerParameters)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetSchedulerParametersFlags)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockStats)(virDomainPtr domain,
|
|
|
|
const char *path,
|
|
|
|
virDomainBlockStatsPtr stats);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockStatsFlags)(virDomainPtr domain,
|
|
|
|
const char *path,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainInterfaceStats)(virDomainPtr domain,
|
2017-10-13 20:25:42 +00:00
|
|
|
const char *device,
|
2014-10-16 10:01:19 +00:00
|
|
|
virDomainInterfaceStatsPtr stats);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetInterfaceParameters)(virDomainPtr dom,
|
|
|
|
const char *device,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetInterfaceParameters)(virDomainPtr dom,
|
|
|
|
const char *device,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMemoryStats)(virDomainPtr domain,
|
|
|
|
virDomainMemoryStatPtr stats,
|
|
|
|
unsigned int nr_stats,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockPeek)(virDomainPtr domain,
|
|
|
|
const char *path,
|
|
|
|
unsigned long long offset,
|
|
|
|
size_t size,
|
|
|
|
void *buffer,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockResize)(virDomainPtr domain,
|
|
|
|
const char *path,
|
|
|
|
unsigned long long size,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMemoryPeek)(virDomainPtr domain,
|
|
|
|
unsigned long long start,
|
|
|
|
size_t size,
|
|
|
|
void *buffer,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetBlockInfo)(virDomainPtr domain,
|
|
|
|
const char *path,
|
|
|
|
virDomainBlockInfoPtr info,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePrepare)(virConnectPtr dconn,
|
|
|
|
char **cookie,
|
|
|
|
int *cookielen,
|
|
|
|
const char *uri_in,
|
|
|
|
char **uri_out,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePerform)(virDomainPtr domain,
|
|
|
|
const char *cookie,
|
|
|
|
int cookielen,
|
|
|
|
const char *uri,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainMigrateFinish)(virConnectPtr dconn,
|
|
|
|
const char *dname,
|
|
|
|
const char *cookie,
|
|
|
|
int cookielen,
|
|
|
|
const char *uri,
|
|
|
|
unsigned long flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetCPUStats)(virConnectPtr conn,
|
|
|
|
int cpuNum,
|
|
|
|
virNodeCPUStatsPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetMemoryStats)(virConnectPtr conn,
|
|
|
|
int cellNum,
|
|
|
|
virNodeMemoryStatsPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetCellsFreeMemory)(virConnectPtr conn,
|
|
|
|
unsigned long long *freeMems,
|
|
|
|
int startCell,
|
|
|
|
int maxCells);
|
|
|
|
|
|
|
|
typedef unsigned long long
|
|
|
|
(*virDrvNodeGetFreeMemory)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectDomainEventRegister)(virConnectPtr conn,
|
|
|
|
virConnectDomainEventCallback cb,
|
|
|
|
void *opaque,
|
|
|
|
virFreeCallback freecb);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectDomainEventDeregister)(virConnectPtr conn,
|
|
|
|
virConnectDomainEventCallback cb);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePrepare2)(virConnectPtr dconn,
|
|
|
|
char **cookie,
|
|
|
|
int *cookielen,
|
|
|
|
const char *uri_in,
|
|
|
|
char **uri_out,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource,
|
|
|
|
const char *dom_xml);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainMigrateFinish2)(virConnectPtr dconn,
|
|
|
|
const char *dname,
|
|
|
|
const char *cookie,
|
|
|
|
int cookielen,
|
|
|
|
const char *uri,
|
|
|
|
unsigned long flags,
|
|
|
|
int retcode);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeDeviceDettach)(virNodeDevicePtr dev);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeDeviceDetachFlags)(virNodeDevicePtr dev,
|
|
|
|
const char *driverName,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeDeviceReAttach)(virNodeDevicePtr dev);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeDeviceReset)(virNodeDevicePtr dev);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePrepareTunnel)(virConnectPtr dconn,
|
|
|
|
virStreamPtr st,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource,
|
|
|
|
const char *dom_xml);
|
|
|
|
|
2014-12-01 15:59:53 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateStartPostCopy)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvConnectIsEncrypted)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectIsSecure)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectIsAlive)(virConnectPtr conn);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainIsActive)(virDomainPtr dom);
|
|
|
|
|
2015-08-10 19:59:14 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainRename)(virDomainPtr dom,
|
|
|
|
const char *new_name,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainIsPersistent)(virDomainPtr dom);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainIsUpdated)(virDomainPtr dom);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectCompareCPU)(virConnectPtr conn,
|
|
|
|
const char *cpu,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2018-04-24 19:31:33 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvConnectCompareHypervisorCPU)(virConnectPtr conn,
|
|
|
|
const char *emulator,
|
|
|
|
const char *arch,
|
|
|
|
const char *machine,
|
|
|
|
const char *virttype,
|
|
|
|
const char *xmlCPU,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectBaselineCPU)(virConnectPtr conn,
|
|
|
|
const char **xmlCPUs,
|
|
|
|
unsigned int ncpus,
|
|
|
|
unsigned int flags);
|
2018-04-24 21:33:28 +00:00
|
|
|
typedef char *
|
|
|
|
(*virDrvConnectBaselineHypervisorCPU)(virConnectPtr conn,
|
|
|
|
const char *emulator,
|
|
|
|
const char *arch,
|
|
|
|
const char *machine,
|
|
|
|
const char *virttype,
|
|
|
|
const char **xmlCPUs,
|
|
|
|
unsigned int ncpus,
|
|
|
|
unsigned int flags);
|
2014-10-16 10:01:19 +00:00
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectGetCPUModelNames)(virConnectPtr conn,
|
2016-04-29 08:38:03 +00:00
|
|
|
const char *archName,
|
2014-10-16 10:01:19 +00:00
|
|
|
char ***models,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetJobInfo)(virDomainPtr domain,
|
|
|
|
virDomainJobInfoPtr info);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetJobStats)(virDomainPtr domain,
|
|
|
|
int *type,
|
|
|
|
virTypedParameterPtr *params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAbortJob)(virDomainPtr domain);
|
|
|
|
|
2022-05-10 13:20:25 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAbortJobFlags)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2017-08-17 22:17:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateGetMaxDowntime)(virDomainPtr domain,
|
|
|
|
unsigned long long *downtime,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateSetMaxDowntime)(virDomainPtr domain,
|
|
|
|
unsigned long long downtime,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateGetCompressionCache)(virDomainPtr domain,
|
|
|
|
unsigned long long *cacheSize,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateSetCompressionCache)(virDomainPtr domain,
|
|
|
|
unsigned long long cacheSize,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateSetMaxSpeed)(virDomainPtr domain,
|
|
|
|
unsigned long bandwidth,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateGetMaxSpeed)(virDomainPtr domain,
|
|
|
|
unsigned long *bandwidth,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectDomainEventRegisterAny)(virConnectPtr conn,
|
|
|
|
virDomainPtr dom,
|
|
|
|
int eventID,
|
|
|
|
virConnectDomainEventGenericCallback cb,
|
|
|
|
void *opaque,
|
|
|
|
virFreeCallback freecb);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectDomainEventDeregisterAny)(virConnectPtr conn,
|
|
|
|
int callbackID);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainManagedSave)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainHasManagedSaveImage)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainManagedSaveRemove)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2017-08-08 08:02:49 +00:00
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainManagedSaveGetXMLDesc)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2017-08-08 08:02:50 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainManagedSaveDefineXML)(virDomainPtr domain,
|
|
|
|
const char *dxml,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef virDomainSnapshotPtr
|
|
|
|
(*virDrvDomainSnapshotCreateXML)(virDomainPtr domain,
|
|
|
|
const char *xmlDesc,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainSnapshotGetXMLDesc)(virDomainSnapshotPtr snapshot,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotNum)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotListNames)(virDomainPtr domain,
|
|
|
|
char **names,
|
|
|
|
int nameslen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainListAllSnapshots)(virDomainPtr domain,
|
|
|
|
virDomainSnapshotPtr **snaps,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotNumChildren)(virDomainSnapshotPtr snapshot,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotListChildrenNames)(virDomainSnapshotPtr snapshot,
|
|
|
|
char **names,
|
|
|
|
int nameslen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotListAllChildren)(virDomainSnapshotPtr snapshot,
|
|
|
|
virDomainSnapshotPtr **snaps,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainSnapshotPtr
|
|
|
|
(*virDrvDomainSnapshotLookupByName)(virDomainPtr domain,
|
|
|
|
const char *name,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainHasCurrentSnapshot)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainSnapshotPtr
|
|
|
|
(*virDrvDomainSnapshotGetParent)(virDomainSnapshotPtr snapshot,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainSnapshotPtr
|
|
|
|
(*virDrvDomainSnapshotCurrent)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotIsCurrent)(virDomainSnapshotPtr snapshot,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotHasMetadata)(virDomainSnapshotPtr snapshot,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainRevertToSnapshot)(virDomainSnapshotPtr snapshot,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSnapshotDelete)(virDomainSnapshotPtr snapshot,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainQemuMonitorCommand)(virDomainPtr domain,
|
|
|
|
const char *cmd,
|
|
|
|
char **result,
|
|
|
|
unsigned int flags);
|
2022-01-27 15:48:00 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainQemuMonitorCommandWithFiles)(virDomainPtr domain,
|
|
|
|
const char *cmd,
|
|
|
|
unsigned int ninfiles,
|
|
|
|
int *infiles,
|
|
|
|
unsigned int *noutfiles,
|
|
|
|
int **outfiles,
|
|
|
|
char **result,
|
|
|
|
unsigned int flags);
|
2014-10-16 10:01:19 +00:00
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainQemuAgentCommand)(virDomainPtr domain,
|
|
|
|
const char *cmd,
|
|
|
|
int timeout,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
/* Choice of unsigned int rather than pid_t is intentional. */
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainQemuAttach)(virConnectPtr conn,
|
|
|
|
unsigned int pid_value,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectDomainQemuMonitorEventRegister)(virConnectPtr conn,
|
|
|
|
virDomainPtr dom,
|
|
|
|
const char *event,
|
|
|
|
virConnectDomainQemuMonitorEventCallback cb,
|
|
|
|
void *opaque,
|
|
|
|
virFreeCallback freecb,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectDomainQemuMonitorEventDeregister)(virConnectPtr conn,
|
|
|
|
int callbackID);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainOpenConsole)(virDomainPtr dom,
|
|
|
|
const char *dev_name,
|
|
|
|
virStreamPtr st,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainOpenChannel)(virDomainPtr dom,
|
|
|
|
const char *name,
|
|
|
|
virStreamPtr st,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainOpenGraphics)(virDomainPtr dom,
|
|
|
|
unsigned int idx,
|
|
|
|
int fd,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainOpenGraphicsFD)(virDomainPtr dom,
|
|
|
|
unsigned int idx,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainInjectNMI)(virDomainPtr dom,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSendKey)(virDomainPtr dom,
|
|
|
|
unsigned int codeset,
|
|
|
|
unsigned int holdtime,
|
|
|
|
unsigned int *keycodes,
|
|
|
|
int nkeycodes,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSendProcessSignal)(virDomainPtr dom,
|
|
|
|
long long pid_value,
|
|
|
|
unsigned int signum,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainMigrateBegin3)(virDomainPtr domain,
|
|
|
|
const char *xmlin,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePrepare3)(virConnectPtr dconn,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
const char *uri_in,
|
|
|
|
char **uri_out,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource,
|
|
|
|
const char *dom_xml);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePrepareTunnel3)(virConnectPtr dconn,
|
|
|
|
virStreamPtr st,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource,
|
|
|
|
const char *dom_xml);
|
|
|
|
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePerform3)(virDomainPtr dom,
|
|
|
|
const char *xmlin,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
const char *dconnuri,
|
|
|
|
const char *uri,
|
|
|
|
unsigned long flags,
|
|
|
|
const char *dname,
|
|
|
|
unsigned long resource);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainMigrateFinish3)(virConnectPtr dconn,
|
|
|
|
const char *dname,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
const char *dconnuri,
|
|
|
|
const char *uri,
|
|
|
|
unsigned long flags,
|
|
|
|
int cancelled);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateConfirm3)(virDomainPtr domain,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
unsigned long flags,
|
|
|
|
int cancelled);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeSuspendForDuration)(virConnectPtr conn,
|
|
|
|
unsigned int target,
|
|
|
|
unsigned long long duration,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2016-03-28 13:30:26 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetPerfEvents)(virDomainPtr dom,
|
|
|
|
virTypedParameterPtr *params,
|
2016-03-30 15:40:50 +00:00
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
2016-03-28 13:30:26 +00:00
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetPerfEvents)(virDomainPtr dom,
|
|
|
|
virTypedParameterPtr params,
|
2016-03-30 15:40:50 +00:00
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
2016-03-28 13:30:26 +00:00
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockJobAbort)(virDomainPtr dom,
|
|
|
|
const char *path,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetBlockJobInfo)(virDomainPtr dom,
|
|
|
|
const char *path,
|
|
|
|
virDomainBlockJobInfoPtr info,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockJobSetSpeed)(virDomainPtr dom,
|
|
|
|
const char *path,
|
|
|
|
unsigned long bandwidth,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockPull)(virDomainPtr dom,
|
|
|
|
const char *path,
|
|
|
|
unsigned long bandwidth,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockRebase)(virDomainPtr dom,
|
|
|
|
const char *path,
|
|
|
|
const char *base,
|
|
|
|
unsigned long bandwidth,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockCopy)(virDomainPtr dom,
|
|
|
|
const char *path,
|
|
|
|
const char *destxml,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBlockCommit)(virDomainPtr dom,
|
|
|
|
const char *disk,
|
|
|
|
const char *base,
|
|
|
|
const char *top,
|
|
|
|
unsigned long bandwidth,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectSetKeepAlive)(virConnectPtr conn,
|
|
|
|
int interval,
|
|
|
|
unsigned int count);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetBlockIoTune)(virDomainPtr dom,
|
|
|
|
const char *disk,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetBlockIoTune)(virDomainPtr dom,
|
|
|
|
const char *disk,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainShutdownFlags)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetCPUStats)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
unsigned int nparams,
|
|
|
|
int start_cpu,
|
|
|
|
unsigned int ncpus,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetDiskErrors)(virDomainPtr dom,
|
|
|
|
virDomainDiskErrorPtr errors,
|
|
|
|
unsigned int maxerrors,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetMetadata)(virDomainPtr dom,
|
|
|
|
int type,
|
|
|
|
const char *metadata,
|
|
|
|
const char *key,
|
|
|
|
const char *uri,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainGetMetadata)(virDomainPtr dom,
|
|
|
|
int type,
|
|
|
|
const char *uri,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetMemoryParameters)(virConnectPtr conn,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeSetMemoryParameters)(virConnectPtr conn,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetCPUMap)(virConnectPtr conn,
|
|
|
|
unsigned char **cpumap,
|
|
|
|
unsigned int *online,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainFSTrim)(virDomainPtr dom,
|
|
|
|
const char *mountPoint,
|
|
|
|
unsigned long long minimum,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetTime)(virDomainPtr dom,
|
|
|
|
long long *seconds,
|
|
|
|
unsigned int *nseconds,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetTime)(virDomainPtr dom,
|
|
|
|
long long seconds,
|
|
|
|
unsigned int nseconds,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainLxcOpenNamespace)(virDomainPtr dom,
|
|
|
|
int **fdlist,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainMigrateBegin3Params)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePrepare3Params)(virConnectPtr dconn,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
char **uri_out,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePrepareTunnel3Params)(virConnectPtr dconn,
|
|
|
|
virStreamPtr st,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigratePerform3Params)(virDomainPtr dom,
|
|
|
|
const char *dconnuri,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainPtr
|
|
|
|
(*virDrvDomainMigrateFinish3Params)(virConnectPtr dconn,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
char **cookieout,
|
|
|
|
int *cookieoutlen,
|
|
|
|
unsigned int flags,
|
|
|
|
int cancelled);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainMigrateConfirm3Params)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
const char *cookiein,
|
|
|
|
int cookieinlen,
|
|
|
|
unsigned int flags,
|
|
|
|
int cancelled);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainFSFreeze)(virDomainPtr dom,
|
|
|
|
const char **mountpoints,
|
|
|
|
unsigned int nmountpoints,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainFSThaw)(virDomainPtr dom,
|
|
|
|
const char **mountpoints,
|
|
|
|
unsigned int nmountpoints,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-11-22 01:27:25 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetFSInfo)(virDomainPtr dom,
|
|
|
|
virDomainFSInfoPtr **info,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetFreePages)(virConnectPtr conn,
|
|
|
|
unsigned int npages,
|
|
|
|
unsigned int *pages,
|
|
|
|
int startCell,
|
|
|
|
unsigned int cellCount,
|
|
|
|
unsigned long long *counts,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectGetAllDomainStats)(virConnectPtr conn,
|
|
|
|
virDomainPtr *doms,
|
|
|
|
unsigned int ndoms,
|
|
|
|
unsigned int stats,
|
|
|
|
virDomainStatsRecordPtr **retStats,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeAllocPages)(virConnectPtr conn,
|
|
|
|
unsigned int npages,
|
|
|
|
unsigned int *pageSizes,
|
|
|
|
unsigned long long *pageCounts,
|
|
|
|
int startCell,
|
|
|
|
unsigned int cellCount,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2015-01-25 18:38:46 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainInterfaceAddresses)(virDomainPtr dom,
|
|
|
|
virDomainInterfacePtr **ifaces,
|
|
|
|
unsigned int source,
|
|
|
|
unsigned int flags);
|
2014-10-16 10:01:19 +00:00
|
|
|
|
2015-05-18 08:33:18 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetUserPassword)(virDomainPtr dom,
|
|
|
|
const char *user,
|
|
|
|
const char *password,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2016-03-01 14:17:38 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvConnectRegisterCloseCallback)(virConnectPtr conn,
|
|
|
|
virConnectCloseFunc cb,
|
|
|
|
void *opaque,
|
|
|
|
virFreeCallback freecb);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectUnregisterCloseCallback)(virConnectPtr conn,
|
|
|
|
virConnectCloseFunc cb);
|
|
|
|
|
2016-06-16 17:15:45 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetGuestVcpus)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr *params,
|
|
|
|
unsigned int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2016-06-20 07:16:47 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetGuestVcpus)(virDomainPtr domain,
|
|
|
|
const char *cpumap,
|
|
|
|
int state,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2016-06-21 08:44:51 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetVcpu)(virDomainPtr domain,
|
|
|
|
const char *cpumap,
|
|
|
|
int state,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2017-02-23 12:09:12 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetBlockThreshold)(virDomainPtr domain,
|
|
|
|
const char *dev,
|
|
|
|
unsigned long long threshold,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2017-10-11 12:02:01 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetLifecycleAction)(virDomainPtr domain,
|
|
|
|
unsigned int type,
|
|
|
|
unsigned int action,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2018-06-08 14:40:53 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvNodeGetSEVInfo)(virConnectPtr conn,
|
|
|
|
virTypedParameterPtr *params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
2017-02-23 12:09:12 +00:00
|
|
|
|
2018-06-08 14:40:59 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetLaunchSecurityInfo)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr *params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2021-11-09 23:28:55 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainSetLaunchSecurityState)(virDomainPtr domain,
|
|
|
|
virTypedParameterPtr params,
|
|
|
|
int nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
backup: Introduce virDomainCheckpoint APIs
Introduce a bunch of new public APIs related to backup checkpoints.
Checkpoints are modeled heavily after virDomainSnapshotPtr (both
represent a point in time of the guest), although a snapshot exists
with the intent of rolling back to that state, while a checkpoint
exists to make it possible to create an incremental backup at a later
time. We may have a future hypervisor that can completely manage
checkpoints without libvirt metadata, but the first two planned
hypervisors (qemu and test) both always use libvirt for tracking
metadata relations between checkpoints, so for now, I've deferred
the counterpart of virDomainSnapshotHasMetadata for a separate
API addition at a later date if there is ever a need for it.
Note that until we allow snapshots and checkpoints to exist
simultaneously on the same domain (although the actual prevention of
this will be in a separate patch for the sake of an easier revert down
the road), that it is not possible to branch out to create more than
one checkpoint child to a given parent, although it may become
possible later when we revert to a snapshot that coincides with a
checkpoint. This also means that for now, the decision of which
checkpoint becomes the parent of a newly created one is the only
checkpoint with no child (so while there are APIs for dealing with a
current snapshot, we do not need those for checkpoints). We may end
up exposing a notion of a current checkpoint later, but it's easier to
add stuff when proven needed than to blindly support it now and wish
we hadn't exposed it.
The following map shows the API relations to snapshots, with new APIs
on the right:
Operate on a domain object to create/redefine a child:
virDomainSnapshotCreateXML virDomainCheckpointCreateXML
Operate on a child object for lifetime management:
virDomainSnapshotDelete virDomainCheckpointDelete
virDomainSnapshotFree virDomainCheckpointFree
virDomainSnapshotRef virDomainCheckpointRef
Operate on a child object to learn more about it:
virDomainSnapshotGetXMLDesc virDomainCheckpointGetXMLDesc
virDomainSnapshotGetConnect virDomainCheckpointGetConnect
virDomainSnapshotGetDomain virDomainCheckpointGetDomain
virDomainSnapshotGetName virDomainCheckpiontGetName
virDomainSnapshotGetParent virDomainCheckpiontGetParent
virDomainSnapshotHasMetadata (deferred for later)
virDomainSnapshotIsCurrent (no counterpart, see note above)
Operate on a domain object to list all children:
virDomainSnapshotNum (no counterparts, these are the old
virDomainSnapshotListNames racy interfaces)
virDomainSnapshotListAllSnapshots virDomainListAllCheckpoints
Operate on a child object to list descendents:
virDomainSnapshotNumChildren (no counterparts, these are the old
virDomainSnapshotListChildrenNames racy interfaces)
virDomainSnapshotListAllChildren virDomainCheckpointListAllChildren
Operate on a domain to locate a particular child:
virDomainSnapshotLookupByName virDomainCheckpointLookupByName
virDomainSnapshotCurrent (no counterpart, see note above)
virDomainHasCurrentSnapshot (no counterpart, old racy interface)
Operate on a snapshot to roll back to earlier state:
virDomainSnapshotRevert (no counterpart, instead checkpoints
are used in incremental backups via
XML to virDomainBackupBegin)
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-03-13 19:35:26 +00:00
|
|
|
typedef virDomainCheckpointPtr
|
|
|
|
(*virDrvDomainCheckpointCreateXML)(virDomainPtr domain,
|
|
|
|
const char *xmlDesc,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainCheckpointGetXMLDesc)(virDomainCheckpointPtr checkpoint,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainListAllCheckpoints)(virDomainPtr domain,
|
|
|
|
virDomainCheckpointPtr **checkpoints,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainCheckpointListAllChildren)(virDomainCheckpointPtr checkpoint,
|
|
|
|
virDomainCheckpointPtr **children,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainCheckpointPtr
|
|
|
|
(*virDrvDomainCheckpointLookupByName)(virDomainPtr domain,
|
|
|
|
const char *name,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virDomainCheckpointPtr
|
|
|
|
(*virDrvDomainCheckpointGetParent)(virDomainCheckpointPtr checkpoint,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainCheckpointDelete)(virDomainCheckpointPtr checkpoint,
|
|
|
|
unsigned int flags);
|
2018-06-08 14:40:59 +00:00
|
|
|
|
2019-08-23 16:31:15 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetGuestInfo)(virDomainPtr domain,
|
|
|
|
unsigned int types,
|
|
|
|
virTypedParameterPtr *params,
|
|
|
|
int *nparams,
|
|
|
|
unsigned int flags);
|
|
|
|
|
Add API to change qemu agent response timeout
Some layered products such as oVirt have requested a way to avoid being
blocked by guest agent commands when querying a loaded vm. For example,
many guest agent commands are polled periodically to monitor changes,
and rather than blocking the calling process, they'd prefer to simply
time out when an agent query is taking too long.
This patch adds a way for the user to specify a custom agent timeout
that is applied to all agent commands.
One special case to note here is the 'guest-sync' command. 'guest-sync'
is issued internally prior to calling any other command. (For example,
when libvirt wants to call 'guest-get-fsinfo', we first call
'guest-sync' and then call 'guest-get-fsinfo').
Previously, the 'guest-sync' command used a 5-second timeout
(VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT), whereas the actual command that
followed always blocked indefinitely
(VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK). As part of this patch, if a
custom timeout is specified that is shorter than
5 seconds, this new timeout is also used for 'guest-sync'. If there is
no custom timeout or if the custom timeout is longer than 5 seconds, we
will continue to use the 5-second timeout.
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-11-13 22:06:09 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAgentSetResponseTimeout)(virDomainPtr domain,
|
|
|
|
int timeout,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2019-08-22 01:42:42 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainBackupBegin)(virDomainPtr domain,
|
|
|
|
const char *backupXML,
|
|
|
|
const char *checkpointXML,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvDomainBackupGetXMLDesc)(virDomainPtr domain,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2020-11-09 19:45:36 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAuthorizedSSHKeysGet)(virDomainPtr domain,
|
|
|
|
const char *user,
|
|
|
|
char ***keys,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvDomainAuthorizedSSHKeysSet)(virDomainPtr domain,
|
|
|
|
const char *user,
|
|
|
|
const char **keys,
|
2020-11-23 12:09:35 +00:00
|
|
|
unsigned int nkeys,
|
2020-11-09 19:45:36 +00:00
|
|
|
unsigned int flags);
|
|
|
|
|
2021-01-22 14:48:49 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainGetMessages)(virDomainPtr domain,
|
|
|
|
char ***msgs,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2021-03-16 12:32:45 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvDomainStartDirtyRateCalc)(virDomainPtr domain,
|
|
|
|
int seconds,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
typedef struct _virHypervisorDriver virHypervisorDriver;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* _virHypervisorDriver:
|
|
|
|
*
|
|
|
|
* Structure associated to a virtualization driver, defining the various
|
|
|
|
* entry points for it.
|
|
|
|
*
|
|
|
|
* All drivers must support the following fields/methods:
|
|
|
|
* - name
|
|
|
|
* - open
|
|
|
|
* - close
|
|
|
|
*/
|
|
|
|
struct _virHypervisorDriver {
|
|
|
|
const char *name; /* the name of the driver */
|
2018-03-27 16:24:44 +00:00
|
|
|
virDrvConnectURIProbe connectURIProbe;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvConnectOpen connectOpen;
|
|
|
|
virDrvConnectClose connectClose;
|
api: introduce virConnectSetIdentity for passing uid, gid, selinux info
When using the fine grained access control mechanism for APIs, when a
client connects to libvirtd, the latter will fetch the uid, gid, selinux
info of the remote client on the UNIX domain socket. This is then used
as the identity when checking ACLs.
With the new split daemons things are a bit more complicated. The user
can connect to virtproxyd, which in turn connects to virtqemud. When
virtqemud requests the identity over the UNIX domain socket, it will
get the identity that virtproxyd is running as, not the identity of
the real end user/application.
virproxyd knows what the real identity is, and needs to be able to
forward this information to virtqemud. The virConnectSetIdentity API
provides a mechanism for doing this. Obviously virtqemud should not
accept such identity overrides from any client, it must only honour it
from a trusted client, aka one running as the same uid/gid as itself.
The typed parameters exposed in the API are the same as those currently
supported by the internal virIdentity class, with a few small name
changes.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-24 11:38:21 +00:00
|
|
|
virDrvConnectSetIdentity connectSetIdentity;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvConnectSupportsFeature connectSupportsFeature;
|
|
|
|
virDrvConnectGetType connectGetType;
|
|
|
|
virDrvConnectGetVersion connectGetVersion;
|
|
|
|
virDrvConnectGetLibVersion connectGetLibVersion;
|
|
|
|
virDrvConnectGetHostname connectGetHostname;
|
|
|
|
virDrvConnectGetSysinfo connectGetSysinfo;
|
|
|
|
virDrvConnectGetMaxVcpus connectGetMaxVcpus;
|
|
|
|
virDrvNodeGetInfo nodeGetInfo;
|
|
|
|
virDrvConnectGetCapabilities connectGetCapabilities;
|
|
|
|
virDrvConnectListDomains connectListDomains;
|
|
|
|
virDrvConnectNumOfDomains connectNumOfDomains;
|
|
|
|
virDrvConnectListAllDomains connectListAllDomains;
|
|
|
|
virDrvDomainCreateXML domainCreateXML;
|
|
|
|
virDrvDomainCreateXMLWithFiles domainCreateXMLWithFiles;
|
|
|
|
virDrvDomainLookupByID domainLookupByID;
|
|
|
|
virDrvDomainLookupByUUID domainLookupByUUID;
|
|
|
|
virDrvDomainLookupByName domainLookupByName;
|
|
|
|
virDrvDomainSuspend domainSuspend;
|
|
|
|
virDrvDomainResume domainResume;
|
|
|
|
virDrvDomainPMSuspendForDuration domainPMSuspendForDuration;
|
|
|
|
virDrvDomainPMWakeup domainPMWakeup;
|
|
|
|
virDrvDomainShutdown domainShutdown;
|
|
|
|
virDrvDomainShutdownFlags domainShutdownFlags;
|
|
|
|
virDrvDomainReboot domainReboot;
|
|
|
|
virDrvDomainReset domainReset;
|
|
|
|
virDrvDomainDestroy domainDestroy;
|
|
|
|
virDrvDomainDestroyFlags domainDestroyFlags;
|
|
|
|
virDrvDomainGetOSType domainGetOSType;
|
|
|
|
virDrvDomainGetHostname domainGetHostname;
|
|
|
|
virDrvDomainGetMaxMemory domainGetMaxMemory;
|
|
|
|
virDrvDomainSetMaxMemory domainSetMaxMemory;
|
|
|
|
virDrvDomainSetMemory domainSetMemory;
|
|
|
|
virDrvDomainSetMemoryFlags domainSetMemoryFlags;
|
|
|
|
virDrvDomainSetMemoryStatsPeriod domainSetMemoryStatsPeriod;
|
|
|
|
virDrvDomainSetMemoryParameters domainSetMemoryParameters;
|
|
|
|
virDrvDomainGetMemoryParameters domainGetMemoryParameters;
|
|
|
|
virDrvDomainSetNumaParameters domainSetNumaParameters;
|
|
|
|
virDrvDomainGetNumaParameters domainGetNumaParameters;
|
|
|
|
virDrvDomainSetBlkioParameters domainSetBlkioParameters;
|
|
|
|
virDrvDomainGetBlkioParameters domainGetBlkioParameters;
|
|
|
|
virDrvDomainGetInfo domainGetInfo;
|
|
|
|
virDrvDomainGetState domainGetState;
|
|
|
|
virDrvDomainGetControlInfo domainGetControlInfo;
|
|
|
|
virDrvDomainSave domainSave;
|
|
|
|
virDrvDomainSaveFlags domainSaveFlags;
|
2022-05-06 13:10:51 +00:00
|
|
|
virDrvDomainSaveParams domainSaveParams;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainRestore domainRestore;
|
|
|
|
virDrvDomainRestoreFlags domainRestoreFlags;
|
2022-05-06 13:10:52 +00:00
|
|
|
virDrvDomainRestoreParams domainRestoreParams;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainSaveImageGetXMLDesc domainSaveImageGetXMLDesc;
|
|
|
|
virDrvDomainSaveImageDefineXML domainSaveImageDefineXML;
|
|
|
|
virDrvDomainCoreDump domainCoreDump;
|
|
|
|
virDrvDomainCoreDumpWithFormat domainCoreDumpWithFormat;
|
|
|
|
virDrvDomainScreenshot domainScreenshot;
|
|
|
|
virDrvDomainSetVcpus domainSetVcpus;
|
|
|
|
virDrvDomainSetVcpusFlags domainSetVcpusFlags;
|
|
|
|
virDrvDomainGetVcpusFlags domainGetVcpusFlags;
|
|
|
|
virDrvDomainPinVcpu domainPinVcpu;
|
|
|
|
virDrvDomainPinVcpuFlags domainPinVcpuFlags;
|
|
|
|
virDrvDomainGetVcpuPinInfo domainGetVcpuPinInfo;
|
|
|
|
virDrvDomainPinEmulator domainPinEmulator;
|
|
|
|
virDrvDomainGetEmulatorPinInfo domainGetEmulatorPinInfo;
|
|
|
|
virDrvDomainGetVcpus domainGetVcpus;
|
|
|
|
virDrvDomainGetMaxVcpus domainGetMaxVcpus;
|
2015-03-25 16:02:26 +00:00
|
|
|
virDrvDomainGetIOThreadInfo domainGetIOThreadInfo;
|
2015-03-05 19:14:27 +00:00
|
|
|
virDrvDomainPinIOThread domainPinIOThread;
|
2015-03-25 21:03:49 +00:00
|
|
|
virDrvDomainAddIOThread domainAddIOThread;
|
|
|
|
virDrvDomainDelIOThread domainDelIOThread;
|
2018-10-03 21:57:56 +00:00
|
|
|
virDrvDomainSetIOThreadParams domainSetIOThreadParams;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainGetSecurityLabel domainGetSecurityLabel;
|
|
|
|
virDrvDomainGetSecurityLabelList domainGetSecurityLabelList;
|
|
|
|
virDrvNodeGetSecurityModel nodeGetSecurityModel;
|
|
|
|
virDrvDomainGetXMLDesc domainGetXMLDesc;
|
|
|
|
virDrvConnectDomainXMLFromNative connectDomainXMLFromNative;
|
|
|
|
virDrvConnectDomainXMLToNative connectDomainXMLToNative;
|
|
|
|
virDrvConnectListDefinedDomains connectListDefinedDomains;
|
|
|
|
virDrvConnectNumOfDefinedDomains connectNumOfDefinedDomains;
|
|
|
|
virDrvDomainCreate domainCreate;
|
|
|
|
virDrvDomainCreateWithFlags domainCreateWithFlags;
|
|
|
|
virDrvDomainCreateWithFiles domainCreateWithFiles;
|
|
|
|
virDrvDomainDefineXML domainDefineXML;
|
2014-11-18 13:56:20 +00:00
|
|
|
virDrvDomainDefineXMLFlags domainDefineXMLFlags;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainUndefine domainUndefine;
|
|
|
|
virDrvDomainUndefineFlags domainUndefineFlags;
|
|
|
|
virDrvDomainAttachDevice domainAttachDevice;
|
|
|
|
virDrvDomainAttachDeviceFlags domainAttachDeviceFlags;
|
|
|
|
virDrvDomainDetachDevice domainDetachDevice;
|
|
|
|
virDrvDomainDetachDeviceFlags domainDetachDeviceFlags;
|
|
|
|
virDrvDomainUpdateDeviceFlags domainUpdateDeviceFlags;
|
2018-05-21 11:15:21 +00:00
|
|
|
virDrvDomainDetachDeviceAlias domainDetachDeviceAlias;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainGetAutostart domainGetAutostart;
|
|
|
|
virDrvDomainSetAutostart domainSetAutostart;
|
|
|
|
virDrvDomainGetSchedulerType domainGetSchedulerType;
|
|
|
|
virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
|
|
|
|
virDrvDomainGetSchedulerParametersFlags domainGetSchedulerParametersFlags;
|
|
|
|
virDrvDomainSetSchedulerParameters domainSetSchedulerParameters;
|
|
|
|
virDrvDomainSetSchedulerParametersFlags domainSetSchedulerParametersFlags;
|
|
|
|
virDrvDomainMigratePrepare domainMigratePrepare;
|
|
|
|
virDrvDomainMigratePerform domainMigratePerform;
|
|
|
|
virDrvDomainMigrateFinish domainMigrateFinish;
|
|
|
|
virDrvDomainBlockResize domainBlockResize;
|
|
|
|
virDrvDomainBlockStats domainBlockStats;
|
|
|
|
virDrvDomainBlockStatsFlags domainBlockStatsFlags;
|
|
|
|
virDrvDomainInterfaceStats domainInterfaceStats;
|
|
|
|
virDrvDomainSetInterfaceParameters domainSetInterfaceParameters;
|
|
|
|
virDrvDomainGetInterfaceParameters domainGetInterfaceParameters;
|
|
|
|
virDrvDomainMemoryStats domainMemoryStats;
|
|
|
|
virDrvDomainBlockPeek domainBlockPeek;
|
|
|
|
virDrvDomainMemoryPeek domainMemoryPeek;
|
|
|
|
virDrvDomainGetBlockInfo domainGetBlockInfo;
|
|
|
|
virDrvNodeGetCPUStats nodeGetCPUStats;
|
|
|
|
virDrvNodeGetMemoryStats nodeGetMemoryStats;
|
|
|
|
virDrvNodeGetCellsFreeMemory nodeGetCellsFreeMemory;
|
|
|
|
virDrvNodeGetFreeMemory nodeGetFreeMemory;
|
|
|
|
virDrvConnectDomainEventRegister connectDomainEventRegister;
|
|
|
|
virDrvConnectDomainEventDeregister connectDomainEventDeregister;
|
|
|
|
virDrvDomainMigratePrepare2 domainMigratePrepare2;
|
|
|
|
virDrvDomainMigrateFinish2 domainMigrateFinish2;
|
|
|
|
virDrvNodeDeviceDettach nodeDeviceDettach;
|
|
|
|
virDrvNodeDeviceDetachFlags nodeDeviceDetachFlags;
|
|
|
|
virDrvNodeDeviceReAttach nodeDeviceReAttach;
|
|
|
|
virDrvNodeDeviceReset nodeDeviceReset;
|
|
|
|
virDrvDomainMigratePrepareTunnel domainMigratePrepareTunnel;
|
|
|
|
virDrvConnectIsEncrypted connectIsEncrypted;
|
|
|
|
virDrvConnectIsSecure connectIsSecure;
|
|
|
|
virDrvDomainIsActive domainIsActive;
|
2015-08-10 19:59:14 +00:00
|
|
|
virDrvDomainRename domainRename;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainIsPersistent domainIsPersistent;
|
|
|
|
virDrvDomainIsUpdated domainIsUpdated;
|
|
|
|
virDrvConnectCompareCPU connectCompareCPU;
|
|
|
|
virDrvConnectBaselineCPU connectBaselineCPU;
|
|
|
|
virDrvDomainGetJobInfo domainGetJobInfo;
|
|
|
|
virDrvDomainGetJobStats domainGetJobStats;
|
|
|
|
virDrvDomainAbortJob domainAbortJob;
|
2022-05-10 13:20:25 +00:00
|
|
|
virDrvDomainAbortJobFlags domainAbortJobFlags;
|
2017-08-17 22:17:19 +00:00
|
|
|
virDrvDomainMigrateGetMaxDowntime domainMigrateGetMaxDowntime;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainMigrateSetMaxDowntime domainMigrateSetMaxDowntime;
|
|
|
|
virDrvDomainMigrateGetCompressionCache domainMigrateGetCompressionCache;
|
|
|
|
virDrvDomainMigrateSetCompressionCache domainMigrateSetCompressionCache;
|
|
|
|
virDrvDomainMigrateGetMaxSpeed domainMigrateGetMaxSpeed;
|
|
|
|
virDrvDomainMigrateSetMaxSpeed domainMigrateSetMaxSpeed;
|
|
|
|
virDrvConnectDomainEventRegisterAny connectDomainEventRegisterAny;
|
|
|
|
virDrvConnectDomainEventDeregisterAny connectDomainEventDeregisterAny;
|
|
|
|
virDrvDomainManagedSave domainManagedSave;
|
|
|
|
virDrvDomainHasManagedSaveImage domainHasManagedSaveImage;
|
|
|
|
virDrvDomainManagedSaveRemove domainManagedSaveRemove;
|
2017-08-08 08:02:49 +00:00
|
|
|
virDrvDomainManagedSaveGetXMLDesc domainManagedSaveGetXMLDesc;
|
2017-08-08 08:02:50 +00:00
|
|
|
virDrvDomainManagedSaveDefineXML domainManagedSaveDefineXML;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainSnapshotCreateXML domainSnapshotCreateXML;
|
|
|
|
virDrvDomainSnapshotGetXMLDesc domainSnapshotGetXMLDesc;
|
|
|
|
virDrvDomainSnapshotNum domainSnapshotNum;
|
|
|
|
virDrvDomainSnapshotListNames domainSnapshotListNames;
|
|
|
|
virDrvDomainListAllSnapshots domainListAllSnapshots;
|
|
|
|
virDrvDomainSnapshotNumChildren domainSnapshotNumChildren;
|
|
|
|
virDrvDomainSnapshotListChildrenNames domainSnapshotListChildrenNames;
|
|
|
|
virDrvDomainSnapshotListAllChildren domainSnapshotListAllChildren;
|
|
|
|
virDrvDomainSnapshotLookupByName domainSnapshotLookupByName;
|
|
|
|
virDrvDomainHasCurrentSnapshot domainHasCurrentSnapshot;
|
|
|
|
virDrvDomainSnapshotGetParent domainSnapshotGetParent;
|
|
|
|
virDrvDomainSnapshotCurrent domainSnapshotCurrent;
|
|
|
|
virDrvDomainSnapshotIsCurrent domainSnapshotIsCurrent;
|
|
|
|
virDrvDomainSnapshotHasMetadata domainSnapshotHasMetadata;
|
|
|
|
virDrvDomainRevertToSnapshot domainRevertToSnapshot;
|
|
|
|
virDrvDomainSnapshotDelete domainSnapshotDelete;
|
|
|
|
virDrvDomainQemuMonitorCommand domainQemuMonitorCommand;
|
2022-01-27 15:48:00 +00:00
|
|
|
virDrvDomainQemuMonitorCommandWithFiles domainQemuMonitorCommandWithFiles;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainQemuAttach domainQemuAttach;
|
|
|
|
virDrvDomainQemuAgentCommand domainQemuAgentCommand;
|
|
|
|
virDrvConnectDomainQemuMonitorEventRegister connectDomainQemuMonitorEventRegister;
|
|
|
|
virDrvConnectDomainQemuMonitorEventDeregister connectDomainQemuMonitorEventDeregister;
|
|
|
|
virDrvDomainOpenConsole domainOpenConsole;
|
|
|
|
virDrvDomainOpenChannel domainOpenChannel;
|
|
|
|
virDrvDomainOpenGraphics domainOpenGraphics;
|
|
|
|
virDrvDomainOpenGraphicsFD domainOpenGraphicsFD;
|
|
|
|
virDrvDomainInjectNMI domainInjectNMI;
|
|
|
|
virDrvDomainMigrateBegin3 domainMigrateBegin3;
|
|
|
|
virDrvDomainMigratePrepare3 domainMigratePrepare3;
|
|
|
|
virDrvDomainMigratePrepareTunnel3 domainMigratePrepareTunnel3;
|
|
|
|
virDrvDomainMigratePerform3 domainMigratePerform3;
|
|
|
|
virDrvDomainMigrateFinish3 domainMigrateFinish3;
|
|
|
|
virDrvDomainMigrateConfirm3 domainMigrateConfirm3;
|
|
|
|
virDrvDomainSendKey domainSendKey;
|
|
|
|
virDrvDomainBlockJobAbort domainBlockJobAbort;
|
|
|
|
virDrvDomainGetBlockJobInfo domainGetBlockJobInfo;
|
|
|
|
virDrvDomainBlockJobSetSpeed domainBlockJobSetSpeed;
|
|
|
|
virDrvDomainBlockPull domainBlockPull;
|
|
|
|
virDrvDomainBlockRebase domainBlockRebase;
|
|
|
|
virDrvDomainBlockCopy domainBlockCopy;
|
|
|
|
virDrvDomainBlockCommit domainBlockCommit;
|
|
|
|
virDrvConnectSetKeepAlive connectSetKeepAlive;
|
|
|
|
virDrvConnectIsAlive connectIsAlive;
|
|
|
|
virDrvNodeSuspendForDuration nodeSuspendForDuration;
|
2016-03-28 13:30:26 +00:00
|
|
|
virDrvDomainGetPerfEvents domainGetPerfEvents;
|
|
|
|
virDrvDomainSetPerfEvents domainSetPerfEvents;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvDomainSetBlockIoTune domainSetBlockIoTune;
|
|
|
|
virDrvDomainGetBlockIoTune domainGetBlockIoTune;
|
|
|
|
virDrvDomainGetCPUStats domainGetCPUStats;
|
|
|
|
virDrvDomainGetDiskErrors domainGetDiskErrors;
|
|
|
|
virDrvDomainSetMetadata domainSetMetadata;
|
|
|
|
virDrvDomainGetMetadata domainGetMetadata;
|
|
|
|
virDrvNodeGetMemoryParameters nodeGetMemoryParameters;
|
|
|
|
virDrvNodeSetMemoryParameters nodeSetMemoryParameters;
|
|
|
|
virDrvNodeGetCPUMap nodeGetCPUMap;
|
|
|
|
virDrvDomainFSTrim domainFSTrim;
|
|
|
|
virDrvDomainSendProcessSignal domainSendProcessSignal;
|
|
|
|
virDrvDomainLxcOpenNamespace domainLxcOpenNamespace;
|
|
|
|
virDrvDomainMigrateBegin3Params domainMigrateBegin3Params;
|
|
|
|
virDrvDomainMigratePrepare3Params domainMigratePrepare3Params;
|
|
|
|
virDrvDomainMigratePrepareTunnel3Params domainMigratePrepareTunnel3Params;
|
|
|
|
virDrvDomainMigratePerform3Params domainMigratePerform3Params;
|
|
|
|
virDrvDomainMigrateFinish3Params domainMigrateFinish3Params;
|
|
|
|
virDrvDomainMigrateConfirm3Params domainMigrateConfirm3Params;
|
|
|
|
virDrvConnectGetCPUModelNames connectGetCPUModelNames;
|
|
|
|
virDrvDomainFSFreeze domainFSFreeze;
|
|
|
|
virDrvDomainFSThaw domainFSThaw;
|
|
|
|
virDrvDomainGetTime domainGetTime;
|
|
|
|
virDrvDomainSetTime domainSetTime;
|
|
|
|
virDrvNodeGetFreePages nodeGetFreePages;
|
|
|
|
virDrvConnectGetDomainCapabilities connectGetDomainCapabilities;
|
|
|
|
virDrvConnectGetAllDomainStats connectGetAllDomainStats;
|
|
|
|
virDrvNodeAllocPages nodeAllocPages;
|
2014-11-22 01:27:25 +00:00
|
|
|
virDrvDomainGetFSInfo domainGetFSInfo;
|
2015-01-25 18:38:46 +00:00
|
|
|
virDrvDomainInterfaceAddresses domainInterfaceAddresses;
|
2015-05-18 08:33:18 +00:00
|
|
|
virDrvDomainSetUserPassword domainSetUserPassword;
|
2016-03-01 14:17:38 +00:00
|
|
|
virDrvConnectRegisterCloseCallback connectRegisterCloseCallback;
|
|
|
|
virDrvConnectUnregisterCloseCallback connectUnregisterCloseCallback;
|
2014-12-01 15:59:53 +00:00
|
|
|
virDrvDomainMigrateStartPostCopy domainMigrateStartPostCopy;
|
2016-06-16 17:15:45 +00:00
|
|
|
virDrvDomainGetGuestVcpus domainGetGuestVcpus;
|
2016-06-20 07:16:47 +00:00
|
|
|
virDrvDomainSetGuestVcpus domainSetGuestVcpus;
|
2016-06-21 08:44:51 +00:00
|
|
|
virDrvDomainSetVcpu domainSetVcpu;
|
2017-02-23 12:09:12 +00:00
|
|
|
virDrvDomainSetBlockThreshold domainSetBlockThreshold;
|
2017-10-11 12:02:01 +00:00
|
|
|
virDrvDomainSetLifecycleAction domainSetLifecycleAction;
|
2018-04-24 19:31:33 +00:00
|
|
|
virDrvConnectCompareHypervisorCPU connectCompareHypervisorCPU;
|
2018-04-24 21:33:28 +00:00
|
|
|
virDrvConnectBaselineHypervisorCPU connectBaselineHypervisorCPU;
|
2018-06-08 14:40:53 +00:00
|
|
|
virDrvNodeGetSEVInfo nodeGetSEVInfo;
|
2018-06-08 14:40:59 +00:00
|
|
|
virDrvDomainGetLaunchSecurityInfo domainGetLaunchSecurityInfo;
|
2021-11-09 23:28:55 +00:00
|
|
|
virDrvDomainSetLaunchSecurityState domainSetLaunchSecurityState;
|
backup: Introduce virDomainCheckpoint APIs
Introduce a bunch of new public APIs related to backup checkpoints.
Checkpoints are modeled heavily after virDomainSnapshotPtr (both
represent a point in time of the guest), although a snapshot exists
with the intent of rolling back to that state, while a checkpoint
exists to make it possible to create an incremental backup at a later
time. We may have a future hypervisor that can completely manage
checkpoints without libvirt metadata, but the first two planned
hypervisors (qemu and test) both always use libvirt for tracking
metadata relations between checkpoints, so for now, I've deferred
the counterpart of virDomainSnapshotHasMetadata for a separate
API addition at a later date if there is ever a need for it.
Note that until we allow snapshots and checkpoints to exist
simultaneously on the same domain (although the actual prevention of
this will be in a separate patch for the sake of an easier revert down
the road), that it is not possible to branch out to create more than
one checkpoint child to a given parent, although it may become
possible later when we revert to a snapshot that coincides with a
checkpoint. This also means that for now, the decision of which
checkpoint becomes the parent of a newly created one is the only
checkpoint with no child (so while there are APIs for dealing with a
current snapshot, we do not need those for checkpoints). We may end
up exposing a notion of a current checkpoint later, but it's easier to
add stuff when proven needed than to blindly support it now and wish
we hadn't exposed it.
The following map shows the API relations to snapshots, with new APIs
on the right:
Operate on a domain object to create/redefine a child:
virDomainSnapshotCreateXML virDomainCheckpointCreateXML
Operate on a child object for lifetime management:
virDomainSnapshotDelete virDomainCheckpointDelete
virDomainSnapshotFree virDomainCheckpointFree
virDomainSnapshotRef virDomainCheckpointRef
Operate on a child object to learn more about it:
virDomainSnapshotGetXMLDesc virDomainCheckpointGetXMLDesc
virDomainSnapshotGetConnect virDomainCheckpointGetConnect
virDomainSnapshotGetDomain virDomainCheckpointGetDomain
virDomainSnapshotGetName virDomainCheckpiontGetName
virDomainSnapshotGetParent virDomainCheckpiontGetParent
virDomainSnapshotHasMetadata (deferred for later)
virDomainSnapshotIsCurrent (no counterpart, see note above)
Operate on a domain object to list all children:
virDomainSnapshotNum (no counterparts, these are the old
virDomainSnapshotListNames racy interfaces)
virDomainSnapshotListAllSnapshots virDomainListAllCheckpoints
Operate on a child object to list descendents:
virDomainSnapshotNumChildren (no counterparts, these are the old
virDomainSnapshotListChildrenNames racy interfaces)
virDomainSnapshotListAllChildren virDomainCheckpointListAllChildren
Operate on a domain to locate a particular child:
virDomainSnapshotLookupByName virDomainCheckpointLookupByName
virDomainSnapshotCurrent (no counterpart, see note above)
virDomainHasCurrentSnapshot (no counterpart, old racy interface)
Operate on a snapshot to roll back to earlier state:
virDomainSnapshotRevert (no counterpart, instead checkpoints
are used in incremental backups via
XML to virDomainBackupBegin)
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-03-13 19:35:26 +00:00
|
|
|
virDrvDomainCheckpointCreateXML domainCheckpointCreateXML;
|
|
|
|
virDrvDomainCheckpointGetXMLDesc domainCheckpointGetXMLDesc;
|
|
|
|
virDrvDomainListAllCheckpoints domainListAllCheckpoints;
|
|
|
|
virDrvDomainCheckpointListAllChildren domainCheckpointListAllChildren;
|
|
|
|
virDrvDomainCheckpointLookupByName domainCheckpointLookupByName;
|
|
|
|
virDrvDomainCheckpointGetParent domainCheckpointGetParent;
|
|
|
|
virDrvDomainCheckpointDelete domainCheckpointDelete;
|
2019-08-23 16:31:15 +00:00
|
|
|
virDrvDomainGetGuestInfo domainGetGuestInfo;
|
Add API to change qemu agent response timeout
Some layered products such as oVirt have requested a way to avoid being
blocked by guest agent commands when querying a loaded vm. For example,
many guest agent commands are polled periodically to monitor changes,
and rather than blocking the calling process, they'd prefer to simply
time out when an agent query is taking too long.
This patch adds a way for the user to specify a custom agent timeout
that is applied to all agent commands.
One special case to note here is the 'guest-sync' command. 'guest-sync'
is issued internally prior to calling any other command. (For example,
when libvirt wants to call 'guest-get-fsinfo', we first call
'guest-sync' and then call 'guest-get-fsinfo').
Previously, the 'guest-sync' command used a 5-second timeout
(VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT), whereas the actual command that
followed always blocked indefinitely
(VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK). As part of this patch, if a
custom timeout is specified that is shorter than
5 seconds, this new timeout is also used for 'guest-sync'. If there is
no custom timeout or if the custom timeout is longer than 5 seconds, we
will continue to use the 5-second timeout.
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-11-13 22:06:09 +00:00
|
|
|
virDrvDomainAgentSetResponseTimeout domainAgentSetResponseTimeout;
|
2019-08-22 01:42:42 +00:00
|
|
|
virDrvDomainBackupBegin domainBackupBegin;
|
|
|
|
virDrvDomainBackupGetXMLDesc domainBackupGetXMLDesc;
|
2020-11-09 19:45:36 +00:00
|
|
|
virDrvDomainAuthorizedSSHKeysGet domainAuthorizedSSHKeysGet;
|
|
|
|
virDrvDomainAuthorizedSSHKeysSet domainAuthorizedSSHKeysSet;
|
2021-01-22 14:48:49 +00:00
|
|
|
virDrvDomainGetMessages domainGetMessages;
|
2021-03-16 12:32:45 +00:00
|
|
|
virDrvDomainStartDirtyRateCalc domainStartDirtyRateCalc;
|
2014-10-16 10:01:19 +00:00
|
|
|
};
|