libvirt/src/locking/domain_lock.h
Peter Krempa 68f0deb0dc locking: Add APIs to lock individual image files
Add helper APIs to manage individual image files rather than disks. To
simplify the addition some parts of the code were refactored in this
patch.
2014-07-09 10:38:56 +02:00

70 lines
2.8 KiB
C

/*
* domain_lock.h: Locking for domain lifecycle operations
*
* Copyright (C) 2010-2011 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 __VIR_DOMAIN_LOCK_H__
# define __VIR_DOMAIN_LOCK_H__
# include "internal.h"
# include "domain_conf.h"
# include "lock_manager.h"
int virDomainLockProcessStart(virLockManagerPluginPtr plugin,
const char *uri,
virDomainObjPtr dom,
bool paused,
int *fd);
int virDomainLockProcessPause(virLockManagerPluginPtr plugin,
virDomainObjPtr dom,
char **state);
int virDomainLockProcessResume(virLockManagerPluginPtr plugin,
const char *uri,
virDomainObjPtr dom,
const char *state);
int virDomainLockProcessInquire(virLockManagerPluginPtr plugin,
virDomainObjPtr dom,
char **state);
int virDomainLockDiskAttach(virLockManagerPluginPtr plugin,
const char *uri,
virDomainObjPtr dom,
virDomainDiskDefPtr disk);
int virDomainLockDiskDetach(virLockManagerPluginPtr plugin,
virDomainObjPtr dom,
virDomainDiskDefPtr disk);
int virDomainLockImageAttach(virLockManagerPluginPtr plugin,
const char *uri,
virDomainObjPtr dom,
virStorageSourcePtr src);
int virDomainLockImageDetach(virLockManagerPluginPtr plugin,
virDomainObjPtr dom,
virStorageSourcePtr src);
int virDomainLockLeaseAttach(virLockManagerPluginPtr plugin,
const char *uri,
virDomainObjPtr dom,
virDomainLeaseDefPtr lease);
int virDomainLockLeaseDetach(virLockManagerPluginPtr plugin,
virDomainObjPtr dom,
virDomainLeaseDefPtr lease);
#endif /* __VIR_DOMAIN_LOCK_H__ */