tools: remove blktap2 related code and documentation

Blktap2 is effectively dead for a few years.

Notable changes in this patch:

0. Unhook blktap2 from build system
1. libxl no longer supports TAP disk backend, with appropriate assertions
   added and some code paths now return ERROR_FAIL
2. Tap is no longer a supported backend
3. Remove blktap2 entry from MAINTAINERS

A patch to remove blktap2 directory will come later.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Wei Liu committed 2019-05-15 16:19:45 +01:00
1 parent 03e48b7b2a
commit 5c883cf036
24 files changed
+8 -408

No files matched your search

-15
View File
@@ -115,20 +115,6 @@ tools/libs/foreignmemory/headers.chk
tools/libs/foreignmemory/xenforeignmemory.pc
tools/libs/devicemodel/headers.chk
tools/libs/devicemodel/xendevicemodel.pc
tools/blktap2/control/xenblktapctl.pc
tools/blktap2/daemon/blktapctrl
tools/blktap2/drivers/img2qcow
tools/blktap2/drivers/lock-util
tools/blktap2/drivers/qcow-create
tools/blktap2/drivers/qcow2raw
tools/blktap2/drivers/tapdisk
tools/blktap2/drivers/tapdisk-client
tools/blktap2/drivers/tapdisk-diff
tools/blktap2/drivers/tapdisk-stream
tools/blktap2/drivers/tapdisk2
tools/blktap2/drivers/td-util
tools/blktap2/vhd/vhd-update
tools/blktap2/vhd/vhd-util
tools/console/xenconsole
tools/console/xenconsoled
tools/console/client/_paths.h
@@ -383,7 +369,6 @@ tools/libxl/*.pyc
tools/libxl/libxl-save-helper
tools/libxl/test_timedereg
tools/libxl/test_fdderegrace
tools/blktap2/control/tap-ctl
tools/firmware/etherboot/eb-roms.h
tools/firmware/etherboot/gpxe-git-snapshot.tar.gz
tools/misc/xenwatchdogd
-12
View File
@@ -128,18 +128,6 @@
^stubdom/stubdompath\.sh$
^stubdom/vtpm/vtpm_manager\.h$
^tools/.*/build/lib.*/.*\.py$
^tools/blktap2/control/tap-ctl$
^tools/blktap2/drivers/img2qcow$
^tools/blktap2/drivers/lock-util$
^tools/blktap2/drivers/qcow-create$
^tools/blktap2/drivers/qcow2raw$
^tools/blktap2/drivers/tapdisk-client$
^tools/blktap2/drivers/tapdisk-diff$
^tools/blktap2/drivers/tapdisk-stream$
^tools/blktap2/drivers/tapdisk2$
^tools/blktap2/drivers/td-util$
^tools/blktap2/vhd/vhd-update$
^tools/blktap2/vhd/vhd-util$
^tools/check/\..*$
^tools/console/xenconsole$
^tools/console/xenconsoled$
-4
View File
@@ -144,10 +144,6 @@ this detection and the sysv runlevel scripts have to be used.
--with-systemd=DIR
--with-systemd-modules-load=DIR
The old backend drivers are disabled because qdisk is now the default.
This option can be used to build them anyway.
--enable-blktap2
Build various stubom components, some are only example code. Its usually
enough to specify just --enable-stubdom and leave these options alone.
--enable-ioemu-stubdom
-4
View File
@@ -192,10 +192,6 @@ F: xen/include/asm-arm/
F: xen/include/public/arch-arm/
F: xen/include/public/arch-arm.h
BLKTAP2
S: Orphaned
F: tools/blktap2/
Continuous Integration (CI)
M: Doug Goldstein <cardoe@cardoe.com>
W: https://gitlab.com/xen-project/xen
-1
View File
@@ -53,7 +53,6 @@ CONFIG_SEABIOS := @seabios@
CONFIG_IPXE := @ipxe@
CONFIG_QEMU_TRAD := @qemu_traditional@
CONFIG_QEMU_XEN := @qemu_xen@
CONFIG_BLKTAP2 := @blktap2@
CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@
CONFIG_LIBNL := @libnl@
+1 -1
View File
@@ -232,7 +232,7 @@ Specifies the backend implementation to use
=item Supported values
phy, tap, qdisk
phy, qdisk
=item Mandatory
-1
View File
@@ -20,7 +20,6 @@ SUBDIRS-y += console
SUBDIRS-y += xenmon
SUBDIRS-y += xenstat
SUBDIRS-$(CONFIG_Linux) += memshr
SUBDIRS-$(CONFIG_BLKTAP2) += blktap2
SUBDIRS-$(CONFIG_NetBSD) += xenbackendd
SUBDIRS-y += libfsimage
SUBDIRS-$(CONFIG_Linux) += libvchan
+1 -15
View File
@@ -25,7 +25,6 @@ XEN_XENLIGHT = $(XEN_ROOT)/tools/libxl
XEN_XLUTIL = $(XEN_XENLIGHT)
XEN_XENSTORE = $(XEN_ROOT)/tools/xenstore
XEN_LIBXENSTAT = $(XEN_ROOT)/tools/xenstat/libxenstat/src
XEN_BLKTAP2 = $(XEN_ROOT)/tools/blktap2
XEN_LIBVCHAN = $(XEN_ROOT)/tools/libvchan
CFLAGS_xeninclude = -I$(XEN_INCLUDE)
@@ -174,21 +173,8 @@ else
CFLAGS += -O2 -fomit-frame-pointer
endif
ifeq ($(CONFIG_BLKTAP2),y)
CFLAGS_libblktapctl = -I$(XEN_BLKTAP2)/control -I$(XEN_BLKTAP2)/include $(CFLAGS_xeninclude)
SHDEPS_libblktapctl =
LDLIBS_libblktapctl = $(SHDEPS_libblktapctl) $(XEN_BLKTAP2)/control/libblktapctl$(libextension)
SHLIB_libblktapctl = $(SHDEPS_libblktapctl) -Wl,-rpath-link=$(XEN_BLKTAP2)/control
else
CFLAGS_libblktapctl =
SHDEPS_libblktapctl =
LDLIBS_libblktapctl =
SHLIB_libblktapctl =
PKG_CONFIG_REMOVE += xenblktapctl
endif
CFLAGS_libxenlight = -I$(XEN_XENLIGHT) $(CFLAGS_libxenctrl) $(CFLAGS_xeninclude)
SHDEPS_libxenlight = $(SHLIB_libxenctrl) $(SHLIB_libxenstore) $(SHLIB_libblktapctl)
SHDEPS_libxenlight = $(SHLIB_libxenctrl) $(SHLIB_libxenstore)
LDLIBS_libxenlight = $(SHDEPS_libxenlight) $(XEN_XENLIGHT)/libxenlight$(libextension)
SHLIB_libxenlight = $(SHDEPS_libxenlight) -Wl,-rpath-link=$(XEN_XENLIGHT)
-6
View File
@@ -3,9 +3,6 @@
/* Enabling support partial device tree in libxl */
#undef ENABLE_PARTIAL_DEVICE_TREE
/* Blktap2 enabled */
#undef HAVE_BLKTAP2
/* Define to 1 if you have the declaration of `fdt_first_subnode', and to 0 if
you don't. */
#undef HAVE_DECL_FDT_FIRST_SUBNODE
@@ -27,9 +24,6 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `aio' library (-laio). */
#undef HAVE_LIBAIO
/* Define to 1 if you have the `fdt' library (-lfdt). */
#undef HAVE_LIBFDT
-78
View File
@@ -704,7 +704,6 @@ BCC
LD86
AS86
qemu_traditional
blktap2
LINUX_BACKEND_MODULES
seabios
ovmf
@@ -809,7 +808,6 @@ enable_xsmpolicy
enable_ovmf
enable_seabios
with_linux_backend_modules
enable_blktap2
enable_qemu_traditional
enable_rombios
with_system_qemu
@@ -1495,7 +1493,6 @@ Optional Features:
--disable-xsmpolicy Disable XSM policy compilation (default is ENABLED)
--enable-ovmf Enable OVMF (default is DISABLED)
--disable-seabios Disable SeaBIOS (default is ENABLED)
--enable-blktap2 Enable blktap2, (DEFAULT is off)
--enable-qemu-traditional
Enable qemu traditional device model, (DEFAULT is on
for Linux or NetBSD x86, otherwise off)
@@ -4225,7 +4222,6 @@ xen-scsibk
usbbk
pciback
xen-acpi-processor
blktap2
"
;;
*)
@@ -4237,29 +4233,6 @@ fi
LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
# Check whether --enable-blktap2 was given.
if test "${enable_blktap2+set}" = set; then :
enableval=$enable_blktap2;
else
enable_blktap2="no"
fi
if test "x$enable_blktap2" = "xyes"; then :
$as_echo "#define HAVE_BLKTAP2 1" >>confdefs.h
blktap2=y
else
blktap2=n
fi
# Check whether --enable-qemu-traditional was given.
if test "${enable_qemu_traditional+set}" = set; then :
enableval=$enable_qemu_traditional;
@@ -8471,57 +8444,6 @@ fi
if test "x$enable_blktap2" = "xyes"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for io_setup in -laio" >&5
$as_echo_n "checking for io_setup in -laio... " >&6; }
if ${ac_cv_lib_aio_io_setup+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-laio $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char io_setup ();
int
main ()
{
return io_setup ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_aio_io_setup=yes
else
ac_cv_lib_aio_io_setup=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_aio_io_setup" >&5
$as_echo "$ac_cv_lib_aio_io_setup" >&6; }
if test "x$ac_cv_lib_aio_io_setup" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBAIO 1
_ACEOF
LIBS="-laio $LIBS"
else
as_fn_error $? "Could not find libaio" "$LINENO" 5
fi
fi
ac_fn_c_check_header_mongrel "$LINENO" "ext2fs/ext2fs.h" "ac_cv_header_ext2fs_ext2fs_h" "$ac_includes_default"
-18
View File
@@ -106,7 +106,6 @@ xen-scsibk
usbbk
pciback
xen-acpi-processor
blktap2
"
;;
*)
@@ -116,20 +115,6 @@ esac])
LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
AC_SUBST(LINUX_BACKEND_MODULES)
dnl Enable blktap2 on Linux only.
AC_ARG_ENABLE([blktap2],
AS_HELP_STRING([--enable-blktap2],
[Enable blktap2, (DEFAULT is off)]),,[
enable_blktap2="no"
])
AS_IF([test "x$enable_blktap2" = "xyes"], [
AC_DEFINE([HAVE_BLKTAP2], [1], [Blktap2 enabled])
blktap2=y],[
blktap2=n
])
AC_SUBST(blktap2)
AC_ARG_ENABLE([qemu-traditional],
AS_HELP_STRING([--enable-qemu-traditional],
[Enable qemu traditional device model, (DEFAULT is on for Linux or NetBSD x86, otherwise off)]),,[
@@ -402,9 +387,6 @@ AC_CHECK_HEADER([lzo/lzo1x.h], [
AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X -llzo2"])
])
AC_SUBST(zlib)
AS_IF([test "x$enable_blktap2" = "xyes"], [
AC_CHECK_LIB([aio], [io_setup], [], [AC_MSG_ERROR([Could not find libaio])])
])
AC_SUBST(system_aio)
AX_CHECK_EXTFS
AX_CHECK_PTHREAD
+1 -1
View File
@@ -28,7 +28,7 @@ import "C"
* -lnl-route-3 -lnl-3
*
* To get back to static linking:
* #cgo LDFLAGS: -lxenlight -lyajl_s -lxengnttab -lxenstore -lxenguest -lxentoollog -lxenevtchn -lxenctrl -lblktapctl -lxenforeignmemory -lxencall -lz -luuid -lutil
* #cgo LDFLAGS: -lxenlight -lyajl_s -lxengnttab -lxenstore -lxenguest -lxentoollog -lxenevtchn -lxenctrl -lxenforeignmemory -lxencall -lz -luuid -lutil
*/
import (
+1 -7
View File
@@ -20,7 +20,7 @@ LIBUUID_LIBS += -luuid
endif
LIBXL_LIBS =
LIBXL_LIBS = $(LDLIBS_libxentoollog) $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(LDLIBS_libblktapctl) $(LDLIBS_libxentoolcore) $(PTYFUNCS_LIBS) $(LIBUUID_LIBS)
LIBXL_LIBS = $(LDLIBS_libxentoollog) $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(LDLIBS_libxentoolcore) $(PTYFUNCS_LIBS) $(LIBUUID_LIBS)
ifeq ($(CONFIG_LIBNL),y)
LIBXL_LIBS += $(LIBNL3_LIBS)
endif
@@ -31,7 +31,6 @@ CFLAGS_LIBXL += $(CFLAGS_libxenevtchn)
CFLAGS_LIBXL += $(CFLAGS_libxenctrl)
CFLAGS_LIBXL += $(CFLAGS_libxenguest)
CFLAGS_LIBXL += $(CFLAGS_libxenstore)
CFLAGS_LIBXL += $(CFLAGS_libblktapctl)
ifeq ($(CONFIG_LIBNL),y)
CFLAGS_LIBXL += $(LIBNL3_CFLAGS)
endif
@@ -47,11 +46,6 @@ LIBXL_LIBS += $(LIBXL_LIBS-y)
LIBXLU_LIBS = $(LDLIBS_libxenlight)
LIBXL_OBJS-y = osdeps.o libxl_paths.o libxl_bootloader.o flexarray.o
ifeq ($(CONFIG_BLKTAP2),y)
LIBXL_OBJS-y += libxl_blktap2.o
else
LIBXL_OBJS-y += libxl_noblktap2.o
endif
ifeq ($(CONFIG_LIBNL),y)
LIBXL_OBJS-y += libxl_netbuffer.o
+1 -1
View File
@@ -3,7 +3,7 @@
set -e
if [ -x ./xl ] ; then
export LD_LIBRARY_PATH=.:../libxc:../xenstore:../blktap2/control
export LD_LIBRARY_PATH=.:../libxc:../xenstore
XL=./xl
else
XL=xl
-94
View File
@@ -1,94 +0,0 @@
/*
* Copyright (C) 2010 Advanced Micro Devices
* Author Christoph Egger <Christoph.Egger@amd.com>
*
* This program 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; version 2.1 only.
*
* 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 Lesser General Public License for more details.
*/
#include "libxl_osdeps.h" /* must come before any other headers */
#include "libxl_internal.h"
#include "tap-ctl.h"
int libxl__blktap_enabled(libxl__gc *gc)
{
const char *msg;
return !tap_ctl_check(&msg);
}
char *libxl__blktap_devpath(libxl__gc *gc,
const char *disk,
libxl_disk_format format)
{
const char *type;
char *params, *devname = NULL;
tap_list_t tap;
int err;
type = libxl__device_disk_string_of_format(format);
err = tap_ctl_find(type, disk, &tap);
if (err == 0) {
devname = GCSPRINTF("/dev/xen/blktap-2/tapdev%d", tap.minor);
if (devname)
return devname;
}
params = GCSPRINTF("%s:%s", type, disk);
err = tap_ctl_create(params, &devname);
if (!err) {
libxl__ptr_add(gc, devname);
return devname;
}
free(devname);
return NULL;
}
int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params)
{
char *type, *disk;
int err;
tap_list_t tap;
type = libxl__strdup(gc, params);
disk = strchr(type, ':');
if (!disk) {
LOG(ERROR, "Unable to parse params %s", params);
return ERROR_INVAL;
}
*disk++ = '\0';
err = tap_ctl_find(type, disk, &tap);
if (err < 0) {
/* returns -errno */
LOGEV(ERROR, -err, "Unable to find type %s disk %s", type, disk);
return ERROR_FAIL;
}
err = tap_ctl_destroy(tap.id, tap.minor);
if (err < 0) {
LOGEV(ERROR, -err, "Failed to destroy tap device id %d minor %d",
tap.id, tap.minor);
return ERROR_FAIL;
}
return 0;
}
/*
* Local variables:
* mode: C
* c-basic-offset: 4
* indent-tabs-mode: nil
* End:
*/
-34
View File
@@ -321,26 +321,9 @@ static int disk_try_backend(disk_try_backend_args *a,
return 0;
case LIBXL_DISK_BACKEND_TAP:
if (a->disk->script) goto bad_script;
if (libxl_defbool_val(a->disk->colo_enable))
goto bad_colo;
if (a->disk->is_cdrom) {
LOG(DEBUG, "Disk vdev=%s, backend tap unsuitable for cdroms",
a->disk->vdev);
return 0;
}
if (!libxl__blktap_enabled(a->gc)) {
LOG(DEBUG, "Disk vdev=%s, backend tap unsuitable because blktap "
"not available", a->disk->vdev);
return 0;
}
if (!(a->disk->format == LIBXL_DISK_FORMAT_RAW ||
a->disk->format == LIBXL_DISK_FORMAT_VHD)) {
goto bad_format;
}
return backend;
case LIBXL_DISK_BACKEND_QDISK:
if (a->disk->script) goto bad_script;
@@ -746,19 +729,11 @@ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
const char *be_path = NULL;
const char *fe_path = NULL;
const char *libxl_path = libxl__device_libxl_path(gc, dev);
const char *tapdisk_path = NULL;
const char *tapdisk_params = NULL;
xs_transaction_t t = 0;
int rc;
uint32_t domid;
int libxl_only = dev->backend_kind == LIBXL__DEVICE_KIND_NONE;
if (!libxl_only) {
be_path = libxl__device_backend_path(gc, dev);
fe_path = libxl__device_frontend_path(gc, dev);
tapdisk_path = GCSPRINTF("%s/%s", be_path, "tapdisk-params");
}
rc = libxl__get_domid(gc, &domid);
if (rc) goto out;
@@ -766,12 +741,6 @@ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
rc = libxl__xs_transaction_start(gc, &t);
if (rc) goto out;
/* May not exist if this is not a tap device */
if (tapdisk_path) {
rc = libxl__xs_read_checked(gc, t, tapdisk_path, &tapdisk_params);
if (rc) goto out;
}
if (domid == LIBXL_TOOLSTACK_DOMID) {
/*
* The toolstack domain is in charge of removing the
@@ -794,9 +763,6 @@ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
if (rc < 0) goto out;
}
if (tapdisk_params)
rc = libxl__device_destroy_tapdisk(gc, tapdisk_params);
out:
libxl__xs_transaction_abort(gc, &t);
return rc;
+1 -20
View File
@@ -321,7 +321,6 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid,
case LIBXL_DISK_BACKEND_PHY:
dev = disk->pdev_path;
do_backend_phy:
flexarray_append(back, "params");
flexarray_append(back, dev);
@@ -333,27 +332,9 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid,
break;
case LIBXL_DISK_BACKEND_TAP:
if (dev == NULL) {
dev = libxl__blktap_devpath(gc, disk->pdev_path,
disk->format);
if (!dev) {
LOGD(ERROR, domid, "Failed to get blktap devpath for %p",
disk->pdev_path);
LOG(ERROR, "blktap is not supported");
rc = ERROR_FAIL;
goto out;
}
}
flexarray_append(back, "tapdisk-params");
flexarray_append(back, GCSPRINTF("%s:%s",
libxl__device_disk_string_of_format(disk->format),
disk->pdev_path));
/* tap backends with scripts are rejected by
* libxl__device_disk_set_backend */
assert(!disk->script);
/* now create a phy device to export the device to the guest */
goto do_backend_phy;
case LIBXL_DISK_BACKEND_QDISK:
flexarray_append(back, "params");
flexarray_append(back, GCSPRINTF("%s:%s",
+1 -12
View File
@@ -1812,18 +1812,7 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
continue;
}
/*
* We can't call libxl__blktap_devpath from
* libxl__device_disk_find_local_path for now because
* the bootloader is called before the disks are set
* up, so this function would set up a blktap node,
* but there's no TAP tear-down on error conditions in
* the bootloader path.
*/
if (disks[i].backend == LIBXL_DISK_BACKEND_TAP)
target_path = libxl__blktap_devpath(gc, disks[i].pdev_path,
disks[i].format);
else
assert(disks[i].backend != LIBXL_DISK_BACKEND_TAP);
target_path = libxl__device_disk_find_local_path(gc,
guest_domid, &disks[i], true);
-26
View File
@@ -1892,32 +1892,6 @@ struct libxl__cpuid_policy {
char *policy[4];
};
/*
* blktap2 support
*/
/* libxl__blktap_enabled:
* return true if blktap/blktap2 support is available.
*/
_hidden int libxl__blktap_enabled(libxl__gc *gc);
/* libxl__blktap_devpath:
* Argument: path and disk image as specified in config file.
* The type specifies whether this is aio, qcow, qcow2, etc.
* returns device path xenstore wants to have. returns NULL
* if no device corresponds to the disk.
*/
_hidden char *libxl__blktap_devpath(libxl__gc *gc,
const char *disk,
libxl_disk_format format);
/* libxl__device_destroy_tapdisk:
* Destroys any tapdisk process associated with the backend represented
* by be_path.
* Always logs on failure.
*/
_hidden int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params);
/* Calls poll() again - useful to check whether a signaled condition
* is still true. Cannot fail. Returns currently-true revents. */
_hidden short libxl__fd_poll_recheck(libxl__egc *egc, int fd, short events);
-42
View File
@@ -1,42 +0,0 @@
/*
* Copyright (C) 2010 Advanced Micro Devices
* Author Christoph Egger <Christoph.Egger@amd.com>
*
* This program 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; version 2.1 only.
*
* 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 Lesser General Public License for more details.
*/
#include "libxl_osdeps.h" /* must come before any other headers */
#include "libxl_internal.h"
int libxl__blktap_enabled(libxl__gc *gc)
{
return 0;
}
char *libxl__blktap_devpath(libxl__gc *gc,
const char *disk,
libxl_disk_format format)
{
return NULL;
}
int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params)
{
return 0;
}
/*
* Local variables:
* mode: C
* c-basic-offset: 4
* indent-tabs-mode: nil
* End:
*/
+1 -1
View File
@@ -9,4 +9,4 @@ Description: The Xenlight library for Xen hypervisor
Version: @@version@@
Cflags: -I${includedir}
Libs: @@libsflag@@${libdir} -lxenlight
Requires.private: xentoollog,xenevtchn,xencontrol,xenguest,xenstore,xenblktapctl
Requires.private: xentoollog,xenevtchn,xencontrol,xenguest,xenstore
-5
View File
@@ -1,10 +1,5 @@
/* Copyright (C) 2004 Christopher Clark <firstname.lastname@cl.cam.ac.uk> */
/*
* There are duplicates of this code in:
* - tools/blktap2/drivers/hashtable.c
*/
#include "hashtable.h"
#include "hashtable_private.h"
#include <stdlib.h>
-5
View File
@@ -1,10 +1,5 @@
/* Copyright (C) 2002 Christopher Clark <firstname.lastname@cl.cam.ac.uk> */
/*
* There are duplicates of this code in:
* - tools/blktap2/drivers/hashtable.h
*/
#ifndef __HASHTABLE_CWC22_H__
#define __HASHTABLE_CWC22_H__
-5
View File
@@ -1,10 +1,5 @@
/* Copyright (C) 2002, 2004 Christopher Clark <firstname.lastname@cl.cam.ac.uk> */
/*
* There are duplicates of this code in:
* - tools/blktap2/drivers/hashtable_private.h
*/
#ifndef __HASHTABLE_PRIVATE_CWC22_H__
#define __HASHTABLE_PRIVATE_CWC22_H__
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.