qemu/create_config
Markus Armbruster eb852011ab Configurable block format whitelist
We have code for a quite a few block formats.  While I trust that all
of these formats are useful at least for some people in some
circumstances, some of them are of a kind that friends don't let
friends use in production.

This patch provides an optional block format whitelist, default off.
If a whitelist is configured with --block-drv-whitelist, QEMU proper
can use only whitelisted formats.  Other programs, like qemu-img, are
not affected.

Drivers for formats off the whitelist still participate in format
probing, to ensure all programs probe exactly the same.  Without that,
QEMU proper would be prone to treat images with a format off the
whitelist as raw when the image's format is probed.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-09 08:43:02 -06:00

100 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
echo "/* Automatically generated by create_config - do not modify */"
while read line; do
case $line in
VERSION=*) # configuration
version=${line#*=}
echo "#define QEMU_VERSION \"$version\""
;;
PKGVERSION=*) # configuration
pkgversion=${line#*=}
echo "#define QEMU_PKGVERSION \"$pkgversion\""
;;
ARCH=*) # configuration
arch=${line#*=}
arch_name=`echo $arch | tr '[:lower:]' '[:upper:]'`
echo "#define HOST_$arch_name 1"
;;
CONFIG_AUDIO_DRIVERS=*)
drivers=${line#*=}
echo "#define CONFIG_AUDIO_DRIVERS \\"
for drv in $drivers; do
echo " &${drv}_audio_driver,\\"
done
echo ""
;;
CONFIG_BDRV_WHITELIST=*)
echo "#define CONFIG_BDRV_WHITELIST \\"
for drv in ${line#*=}; do
echo " \"${drv}\",\\"
done
echo " NULL"
;;
CONFIG_*=y) # configuration
name=${line%=*}
echo "#define $name 1"
;;
CONFIG_*=*) # configuration
name=${line%=*}
value=${line#*=}
echo "#define $name $value"
;;
ARCH=*) # configuration
arch=${line#*=}
arch_name=`echo $arch | tr '[:lower:]' '[:upper:]'`
echo "#define HOST_$arch_name 1"
;;
HOST_USB=*)
# do nothing
;;
HOST_CC=*)
# do nothing
;;
HOST_*=y) # configuration
name=${line%=*}
echo "#define $name 1"
;;
HOST_*=*) # configuration
name=${line%=*}
value=${line#*=}
echo "#define $name $value"
;;
TARGET_ARCH=*) # configuration
target_arch=${line#*=}
echo "#define TARGET_ARCH \"$target_arch\""
;;
TARGET_BASE_ARCH=*) # configuration
target_base_arch=${line#*=}
if [ "$target_base_arch" != "$target_arch" ]; then
base_arch_name=`echo $target_base_arch | tr '[:lower:]' '[:upper:]'`
echo "#define TARGET_$base_arch_name 1"
fi
;;
TARGET_XML_FILES=*)
# do nothing
;;
TARGET_ABI_DIR=*)
# do nothing
;;
TARGET_ARCH2=*)
# do nothing
;;
TARGET_DIRS=*)
# do nothing
;;
TARGET_*=y) # configuration
name=${line%=*}
echo "#define $name 1"
;;
TARGET_*=*) # configuration
name=${line%=*}
value=${line#*=}
echo "#define $name $value"
;;
esac
done # read