blob: 4fc1092a3b2c16455c42ce344fee3d09389664f8 [file] [log] [blame] [raw]
/*
* Copyright (C) 2011-2012, Parallels, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _IMAGE_H_
#define _IMAGE_H_
#include <ploop/libploop.h>
#include "types.h"
#include "quota.h"
#include "fs.h"
#define GET_DISK_DESCRIPTOR(buf, ve_private) \
snprintf(buf, sizeof(buf), \
"%s/root.hdd/" DISKDESCRIPTOR_XML, ve_private)
struct vzctl_create_image_param {
int mode;
unsigned long size;
};
struct vzctl_mount_param {
char device[64];
int ro;
char *guid;
int mount_by_parent_guid;
char *target;
int quota;
char *mount_data;
char dummy[32];
};
int get_ploop_type(const char *type);
int is_ploop_supported(void);
int is_image_mounted(const char *ve_private);
int vzctl_create_image(const char *ve_private, struct vzctl_create_image_param *param);
int vzctl_mount_image(const char *ve_private, struct vzctl_mount_param *param);
int vzctl_umount_image(const char *ve_private);
int vzctl_convert_image(const char *ve_private, int mode);
int vzctl_resize_image(const char *ve_private, unsigned long long newsize);
int vzctl_get_ploop_dev(const char *mnt, char *out, int len);
int vzctl_create_snapshot(const char *ve_private, const char *guid);
int vzctl_merge_snapshot(const char *ve_private, const char *guid);
int vzctl_delete_snapshot(const char *ve_private, const char *guid);
int ve_private_is_ploop(const char *private);
int check_ploop_size(unsigned long size);
int vzctl_env_convert_ploop(vps_handler *h, envid_t veid,
fs_param *fs, dq_param *dq, int mode);
#endif /* _IMAGE_H_ */