mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-07 21:45:22 +00:00
c8238579fb
Historically, we declared pointer type to our types: typedef struct _virXXX virXXX; typedef virXXX *virXXXPtr; But usefulness of such declaration is questionable, at best. Unfortunately, we can't drop every such declaration - we have to carry some over, because they are part of public API (e.g. virDomainPtr). But for internal types - we can do drop them and use what every other C project uses 'virXXX *'. This change was generated by a very ugly shell script that generated sed script which was then called over each file in the repository. For the shell script refer to the cover letter: https://listman.redhat.com/archives/libvir-list/2021-March/msg00537.html Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
115 lines
3.5 KiB
C
115 lines
3.5 KiB
C
/*
|
|
* qemu_saveimage.h: Infrastructure for saving qemu state to a file
|
|
*
|
|
* 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/>.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "virconftypes.h"
|
|
#include "datatypes.h"
|
|
|
|
#include "qemu_conf.h"
|
|
#include "qemu_domainjob.h"
|
|
#include "qemu_domain.h"
|
|
|
|
/* It would be nice to replace 'Qemud' with 'Qemu' but
|
|
* this magic string is ABI, so it can't be changed
|
|
*/
|
|
#define QEMU_SAVE_MAGIC "LibvirtQemudSave"
|
|
#define QEMU_SAVE_PARTIAL "LibvirtQemudPart"
|
|
#define QEMU_SAVE_VERSION 2
|
|
|
|
G_STATIC_ASSERT(sizeof(QEMU_SAVE_MAGIC) == sizeof(QEMU_SAVE_PARTIAL));
|
|
|
|
typedef struct _virQEMUSaveHeader virQEMUSaveHeader;
|
|
struct _virQEMUSaveHeader {
|
|
char magic[sizeof(QEMU_SAVE_MAGIC)-1];
|
|
uint32_t version;
|
|
uint32_t data_len;
|
|
uint32_t was_running;
|
|
uint32_t compressed;
|
|
uint32_t cookieOffset;
|
|
uint32_t unused[14];
|
|
};
|
|
|
|
|
|
typedef struct _virQEMUSaveData virQEMUSaveData;
|
|
struct _virQEMUSaveData {
|
|
virQEMUSaveHeader header;
|
|
char *xml;
|
|
char *cookie;
|
|
};
|
|
|
|
|
|
virDomainDef *
|
|
qemuSaveImageUpdateDef(virQEMUDriver *driver,
|
|
virDomainDef *def,
|
|
const char *newxml);
|
|
|
|
int
|
|
qemuSaveImageStartVM(virConnectPtr conn,
|
|
virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
int *fd,
|
|
virQEMUSaveData *data,
|
|
const char *path,
|
|
bool start_paused,
|
|
qemuDomainAsyncJob asyncJob)
|
|
ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5) ATTRIBUTE_NONNULL(6);
|
|
|
|
int
|
|
qemuSaveImageOpen(virQEMUDriver *driver,
|
|
virQEMUCaps *qemuCaps,
|
|
const char *path,
|
|
virDomainDef **ret_def,
|
|
virQEMUSaveData **ret_data,
|
|
bool bypass_cache,
|
|
virFileWrapperFd **wrapperFd,
|
|
bool open_write,
|
|
bool unlink_corrupt)
|
|
ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
|
|
|
|
int
|
|
qemuSaveImageGetCompressionProgram(const char *imageFormat,
|
|
virCommand **compressor,
|
|
const char *styleFormat,
|
|
bool use_raw_on_fail)
|
|
ATTRIBUTE_NONNULL(2);
|
|
|
|
int
|
|
qemuSaveImageCreate(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
const char *path,
|
|
virQEMUSaveData *data,
|
|
virCommand *compressor,
|
|
unsigned int flags,
|
|
qemuDomainAsyncJob asyncJob);
|
|
|
|
int
|
|
virQEMUSaveDataWrite(virQEMUSaveData *data,
|
|
int fd,
|
|
const char *path);
|
|
|
|
virQEMUSaveData *
|
|
virQEMUSaveDataNew(char *domXML,
|
|
qemuDomainSaveCookie *cookieObj,
|
|
bool running,
|
|
int compressed,
|
|
virDomainXMLOption *xmlopt);
|
|
|
|
void
|
|
virQEMUSaveDataFree(virQEMUSaveData *data);
|