X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=arch_init.c;h=a9e8b7442be112afeebc6f32b92d471048a26a84;hb=affe5189907f397514cdd4ee7446595c1246a0e9;hp=595badf50ffc52af29d66ffa06a7354f3aaa620a;hpb=49f54371f22e3e95124e8115050cea29fadde606;p=qemu.git diff --git a/arch_init.c b/arch_init.c index 595badf50..a9e8b7442 100644 --- a/arch_init.c +++ b/arch_init.c @@ -54,7 +54,6 @@ int graphic_height = 600; int graphic_depth = 15; #endif -const char arch_config_name[] = CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".conf"; #if defined(TARGET_ALPHA) #define QEMU_ARCH QEMU_ARCH_ALPHA @@ -101,6 +100,10 @@ const uint32_t arch_type = QEMU_ARCH; #define VECTYPE vector unsigned char #define SPLAT(p) vec_splat(vec_ld(0, p), 0) #define ALL_EQ(v1, v2) vec_all_eq(v1, v2) +/* altivec.h may redefine the bool macro as vector type. + * Reset it to POSIX semantics. */ +#undef bool +#define bool _Bool #elif defined __SSE2__ #include #define VECTYPE __m128i @@ -112,6 +115,37 @@ const uint32_t arch_type = QEMU_ARCH; #define ALL_EQ(v1, v2) ((v1) == (v2)) #endif + +static struct defconfig_file { + const char *filename; + /* Indicates it is an user config file (disabled by -no-user-config) */ + bool userconfig; +} default_config_files[] = { + { CONFIG_QEMU_DATADIR "/cpus-" TARGET_ARCH ".conf", false }, + { CONFIG_QEMU_CONFDIR "/qemu.conf", true }, + { CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".conf", true }, + { NULL }, /* end of list */ +}; + + +int qemu_read_default_config_files(bool userconfig) +{ + int ret; + struct defconfig_file *f; + + for (f = default_config_files; f->filename; f++) { + if (!userconfig && f->userconfig) { + continue; + } + ret = qemu_read_config_file(f->filename); + if (ret < 0 && ret != -ENOENT) { + return ret; + } + } + + return 0; +} + static int is_dup_page(uint8_t *page) { VECTYPE *p = (VECTYPE *)page; @@ -475,7 +509,7 @@ struct soundhw { static struct soundhw soundhw[] = { #ifdef HAS_AUDIO_CHOICE -#if defined(TARGET_I386) || defined(TARGET_MIPS) +#ifdef CONFIG_PCSPK { "pcspk", "PC speaker",