qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

vhdx: Use QEMU UUID API

This removes our dependency to libuuid, so that the driver can always be
built.

Similar to how we handled data plane configure options, --enable-vhdx
and --disable-vhdx are also changed to a nop with a message saying it's
obsolete.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Message-Id: <1474432046-325-4-git-send-email-famz@redhat.com>

+8 -33
+1 -1
block/Makefile.objs
··· 2 2 block-obj-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o qcow2-cache.o 3 3 block-obj-y += qed.o qed-gencb.o qed-l2-cache.o qed-table.o qed-cluster.o 4 4 block-obj-y += qed-check.o 5 - block-obj-$(CONFIG_VHDX) += vhdx.o vhdx-endian.o vhdx-log.o 5 + block-obj-y += vhdx.o vhdx-endian.o vhdx-log.o 6 6 block-obj-y += quorum.o 7 7 block-obj-y += parallels.o blkdebug.o blkverify.o blkreplay.o 8 8 block-obj-y += block-backend.o snapshot.o qapi.o
-3
block/vhdx-endian.c
··· 21 21 #include "qemu/bswap.h" 22 22 #include "block/vhdx.h" 23 23 24 - #include <uuid/uuid.h> 25 - 26 - 27 24 /* 28 25 * All the VHDX formats on disk are little endian - the following 29 26 * are helper import/export functions to correctly convert
+4 -5
block/vhdx.c
··· 25 25 #include "qemu/bswap.h" 26 26 #include "block/vhdx.h" 27 27 #include "migration/migration.h" 28 - 29 - #include <uuid/uuid.h> 28 + #include "qemu/uuid.h" 30 29 31 30 /* Options for VHDX creation */ 32 31 ··· 213 212 */ 214 213 void vhdx_guid_generate(MSGUID *guid) 215 214 { 216 - uuid_t uuid; 215 + QemuUUID uuid; 217 216 assert(guid != NULL); 218 217 219 - uuid_generate(uuid); 220 - memcpy(guid, uuid, sizeof(MSGUID)); 218 + qemu_uuid_generate(&uuid); 219 + memcpy(guid, &uuid, sizeof(MSGUID)); 221 220 } 222 221 223 222 /* Check for region overlaps inside the VHDX image */
+3 -24
configure
··· 317 317 virglrenderer="" 318 318 tpm="yes" 319 319 libssh2="" 320 - vhdx="" 321 320 numa="" 322 321 tcmalloc="no" 323 322 jemalloc="no" ··· 1103 1102 --disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane) 1104 1103 echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2 1105 1104 ;; 1105 + --enable-vhdx|--disable-vhdx) 1106 + echo "$0: $opt is obsolete, VHDX driver is always built" >&2 1107 + ;; 1106 1108 --disable-gtk) gtk="no" 1107 1109 ;; 1108 1110 --enable-gtk) gtk="yes" ··· 1142 1144 --disable-libssh2) libssh2="no" 1143 1145 ;; 1144 1146 --enable-libssh2) libssh2="yes" 1145 - ;; 1146 - --enable-vhdx) vhdx="yes" 1147 - ;; 1148 - --disable-vhdx) vhdx="no" 1149 1147 ;; 1150 1148 --disable-numa) numa="no" 1151 1149 ;; ··· 1389 1387 archipelago Archipelago backend 1390 1388 tpm TPM support 1391 1389 libssh2 ssh block device support 1392 - vhdx support for the Microsoft VHDX image format 1393 1390 numa libnuma support 1394 1391 tcmalloc tcmalloc support 1395 1392 jemalloc jemalloc support ··· 2690 2687 fi 2691 2688 fi 2692 2689 2693 - if test "$vhdx" = "yes" ; then 2694 - if test "$uuid" = "no" ; then 2695 - error_exit "uuid required for VHDX support" 2696 - fi 2697 - elif test "$vhdx" != "no" ; then 2698 - if test "$uuid" = "yes" ; then 2699 - vhdx=yes 2700 - else 2701 - vhdx=no 2702 - fi 2703 - fi 2704 - 2705 - ########################################## 2706 2690 # xfsctl() probe, used for raw-posix 2707 2691 if test "$xfs" != "no" ; then 2708 2692 cat > $TMPC << EOF ··· 4917 4901 echo "libssh2 support $libssh2" 4918 4902 echo "TPM passthrough $tpm_passthrough" 4919 4903 echo "QOM debugging $qom_cast_debug" 4920 - echo "vhdx $vhdx" 4921 4904 echo "lzo support $lzo" 4922 4905 echo "snappy support $snappy" 4923 4906 echo "bzip2 support $bzip2" ··· 5441 5424 echo "CONFIG_LIBSSH2=m" >> $config_host_mak 5442 5425 echo "LIBSSH2_CFLAGS=$libssh2_cflags" >> $config_host_mak 5443 5426 echo "LIBSSH2_LIBS=$libssh2_libs" >> $config_host_mak 5444 - fi 5445 - 5446 - if test "$vhdx" = "yes" ; then 5447 - echo "CONFIG_VHDX=y" >> $config_host_mak 5448 5427 fi 5449 5428 5450 5429 # USB host support