From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v2 16/18] libxl: introduce libxl_userdata_unlink Date: Wed, 30 Jul 2014 19:23:57 +0100 Message-ID: <1406744639-28782-17-git-send-email-wei.liu2@citrix.com> References: <1406744639-28782-1-git-send-email-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1406744639-28782-1-git-send-email-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Wei Liu , ian.jackson@eu.citrix.com, ian.campbell@citrix.com List-Id: xen-devel@lists.xenproject.org Signed-off-by: Wei Liu --- tools/libxl/libxl.h | 10 ++++++++++ tools/libxl/libxl_dom.c | 25 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index d12f166..b124753 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -67,6 +67,13 @@ * the same $(XEN_VERSION) (e.g. throughout a major release). */ +/* LIBXL_HAVE_USERDATA_UNLINK + * + * If it is defined, libxl has a library function called + * libxl_userdata_unlink. + */ +#define LIBXL_HAVE_USERDATA_UNLINK 1 + /* LIBXL_HAVE_CPUPOOL_QUALIFIER_TO_CPUPOOLID * * If this is defined, libxl has a library function called @@ -1228,6 +1235,9 @@ int libxl_userdata_retrieve(libxl_ctx *ctx, uint32_t domid, * data_r and datalen_r may be 0. * On error return, *data_r and *datalen_r are undefined. */ +int libxl_userdata_unlink(libxl_ctx *ctx, uint32_t domid, + const char *userdata_userid); + int libxl_get_physinfo(libxl_ctx *ctx, libxl_physinfo *physinfo); int libxl_set_vcpuaffinity(libxl_ctx *ctx, uint32_t domid, uint32_t vcpuid, diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index 3b9eade..f111cf1 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -1975,6 +1975,31 @@ out: return rc; } +int libxl_userdata_unlink(libxl_ctx *ctx, uint32_t domid, + const char *userdata_userid) +{ + GC_INIT(ctx); + int rc; + libxl__carefd *lock; + const char *filename; + + CTX_LOCK; + lock = libxl__lock_domain_data(gc, domid); + if (!lock) { + rc = ERROR_LOCK_FAIL; + goto out; + } + + filename = libxl__userdata_path(gc, domid, userdata_userid, "d"); + if (unlink(filename)) rc = ERROR_FAIL; + + libxl__unlock_domain_data(lock); +out: + CTX_UNLOCK; + GC_FREE; + return rc; +} + /* * Local variables: * mode: C -- 1.7.10.4