* util/log: re-allow switching away from stderr log file

* finish audio configuration rework
 * cleanup HVF stubs
 * remove more mentions of softmmu
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmUi/kIUHHBib256aW5p
 QHJlZGhhdC5jb20ACgkQv/vSX3jHroOXWwf/YW16QMzqdAPVHYRf9NcCneRF16El
 t3lEod0q0sHhchPbh9e04aKbh+oBNeWu9sFyTl11Fwsi+DGmp/b28ziva75/4rfd
 h5N9aX/z2jwPqy93IwPDu3soKXCCgTK+ywtD/5GLQwBGqxs7W2xUEEb7eCnVefHa
 zwL3MOUqPICeqOnR1TNw9k3N3veF04D+rmchTwbAjAmx1f8EI+mK9VlGK9V8TUjP
 3HjpZYJluc0a92lR5VONJ7V25QfttsjLysTgpFwVAQPS6Frzatc/hWclfLYgw9vl
 2Irk83FV8gXPRl0XKNcqSDsv6h/yGP6TDFIB8QwRSRGBqIQi5aOlfBJzsQ==
 =qbm7
 -----END PGP SIGNATURE-----

Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* util/log: re-allow switching away from stderr log file
* finish audio configuration rework
* cleanup HVF stubs
* remove more mentions of softmmu

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmUi/kIUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroOXWwf/YW16QMzqdAPVHYRf9NcCneRF16El
# t3lEod0q0sHhchPbh9e04aKbh+oBNeWu9sFyTl11Fwsi+DGmp/b28ziva75/4rfd
# h5N9aX/z2jwPqy93IwPDu3soKXCCgTK+ywtD/5GLQwBGqxs7W2xUEEb7eCnVefHa
# zwL3MOUqPICeqOnR1TNw9k3N3veF04D+rmchTwbAjAmx1f8EI+mK9VlGK9V8TUjP
# 3HjpZYJluc0a92lR5VONJ7V25QfttsjLysTgpFwVAQPS6Frzatc/hWclfLYgw9vl
# 2Irk83FV8gXPRl0XKNcqSDsv6h/yGP6TDFIB8QwRSRGBqIQi5aOlfBJzsQ==
# =qbm7
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 08 Oct 2023 15:08:50 EDT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (25 commits)
  audio, qtest: get rid of QEMU_AUDIO_DRV
  audio: reintroduce default audio backend for VNC
  audio: do not use first -audiodev as default audio device
  audio: extend -audio to allow creating a default backend
  audio: extract audio_define_default
  audio: disable default backends if -audio/-audiodev is used
  audio: error hints need a trailing \n
  cutils: squelch compiler warnings with custom paths
  configure: change $softmmu to $system
  system: Rename softmmu/ directory as system/
  meson: Rename target_softmmu_arch -> target_system_arch
  meson: Rename softmmu_mods -> system_mods
  target/i386: Rename i386_softmmu_kvm_ss -> i386_kvm_ss
  semihosting: Rename softmmu_FOO_user() -> uaccess_FOO_user()
  gdbstub: Rename 'softmmu' -> 'system'
  accel: Rename accel_softmmu* -> accel_system*
  tcg: Correct invalid mentions of 'softmmu' by 'system-mode'
  fuzz: Correct invalid mentions of 'softmmu' by 'system'
  cpu: Correct invalid mentions of 'softmmu' by 'system-mode'
  travis-ci: Correct invalid mentions of 'softmmu' by 'system'
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2023-10-09 10:11:17 -04:00
commit 1527c6b6fa
132 changed files with 305 additions and 276 deletions

View File

@ -34,7 +34,7 @@ env:
- BASE_CONFIG="--disable-docs --disable-tools"
- TEST_BUILD_CMD=""
- TEST_CMD="make check V=1"
# This is broadly a list of "mainline" softmmu targets which have support across the major distros
# This is broadly a list of "mainline" system targets which have support across the major distros
- MAIN_SOFTMMU_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
- CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime"
- CCACHE_MAXSIZE=1G
@ -197,7 +197,7 @@ jobs:
$(exit $BUILD_RC);
fi
- name: "[s390x] GCC (other-softmmu)"
- name: "[s390x] GCC (other-system)"
arch: s390x
dist: focal
addons:

View File

@ -137,8 +137,8 @@ Overall TCG CPUs
M: Richard Henderson <richard.henderson@linaro.org>
R: Paolo Bonzini <pbonzini@redhat.com>
S: Maintained
F: softmmu/cpus.c
F: softmmu/watchpoint.c
F: system/cpus.c
F: system/watchpoint.c
F: cpu-common.c
F: cpu-target.c
F: page-vary-target.c
@ -2114,7 +2114,7 @@ S: Maintained
F: docs/interop/virtio-balloon-stats.rst
F: hw/virtio/virtio-balloon*.c
F: include/hw/virtio/virtio-balloon.h
F: softmmu/balloon.c
F: system/balloon.c
F: include/sysemu/balloon.h
virtio-9p
@ -2801,7 +2801,7 @@ Device Tree
M: Alistair Francis <alistair.francis@wdc.com>
R: David Gibson <david@gibson.dropbear.id.au>
S: Maintained
F: softmmu/device_tree.c
F: system/device_tree.c
F: include/sysemu/device_tree.h
Dump
@ -2857,11 +2857,11 @@ F: include/exec/memory.h
F: include/exec/ram_addr.h
F: include/exec/ramblock.h
F: include/sysemu/memory_mapping.h
F: softmmu/dma-helpers.c
F: softmmu/ioport.c
F: softmmu/memory.c
F: softmmu/memory_mapping.c
F: softmmu/physmem.c
F: system/dma-helpers.c
F: system/ioport.c
F: system/memory.c
F: system/memory_mapping.c
F: system/physmem.c
F: include/exec/memory-internal.h
F: scripts/coccinelle/memory-region-housekeeping.cocci
@ -2914,12 +2914,12 @@ F: include/sysemu/runstate.h
F: include/sysemu/runstate-action.h
F: util/main-loop.c
F: util/qemu-timer.c
F: softmmu/vl.c
F: softmmu/main.c
F: softmmu/cpus.c
F: softmmu/cpu-throttle.c
F: softmmu/cpu-timers.c
F: softmmu/runstate*
F: system/vl.c
F: system/main.c
F: system/cpus.c
F: system/cpu-throttle.c
F: system/cpu-timers.c
F: system/runstate*
F: qapi/run-state.json
Read, Copy, Update (RCU)
@ -3093,7 +3093,7 @@ F: qapi/qom.json
F: qapi/qdev.json
F: scripts/coccinelle/qom-parent-type.cocci
F: scripts/qom-cast-macro-clean-cocci-gen.py
F: softmmu/qdev-monitor.c
F: system/qdev-monitor.c
F: stubs/qdev.c
F: qom/
F: tests/unit/check-qom-interface.c
@ -3127,7 +3127,7 @@ M: Thomas Huth <thuth@redhat.com>
M: Laurent Vivier <lvivier@redhat.com>
R: Paolo Bonzini <pbonzini@redhat.com>
S: Maintained
F: softmmu/qtest.c
F: system/qtest.c
F: accel/qtest/
F: tests/qtest/
F: docs/devel/qgraph.rst
@ -3203,7 +3203,7 @@ F: scripts/simpletrace.py
TPM
M: Stefan Berger <stefanb@linux.ibm.com>
S: Maintained
F: softmmu/tpm*
F: system/tpm*
F: hw/tpm/*
F: include/hw/acpi/tpm.h
F: include/sysemu/tpm*
@ -3248,7 +3248,7 @@ F: migration/rdma*
Migration dirty limit and dirty page rate
M: Hyman Huang <yong.huang@smartx.com>
S: Maintained
F: softmmu/dirtylimit.c
F: system/dirtylimit.c
F: include/sysemu/dirtylimit.h
F: migration/dirtyrate.c
F: migration/dirtyrate.h
@ -3272,7 +3272,7 @@ F: scripts/xml-preprocess*
Seccomp
M: Daniel P. Berrange <berrange@redhat.com>
S: Odd Fixes
F: softmmu/qemu-seccomp.c
F: system/qemu-seccomp.c
F: include/sysemu/seccomp.h
F: tests/unit/test-seccomp.c
@ -3691,7 +3691,7 @@ T: git https://github.com/stefanha/qemu.git block
Bootdevice
M: Gonglei <arei.gonglei@huawei.com>
S: Maintained
F: softmmu/bootdevice.c
F: system/bootdevice.c
Quorum
M: Alberto Garcia <berto@igalia.com>

View File

@ -28,7 +28,7 @@
#include "hw/boards.h"
#include "sysemu/cpus.h"
#include "qemu/error-report.h"
#include "accel-softmmu.h"
#include "accel-system.h"
int accel_init_machine(AccelState *accel, MachineState *ms)
{
@ -99,8 +99,8 @@ static const TypeInfo accel_ops_type_info = {
.class_size = sizeof(AccelOpsClass),
};
static void accel_softmmu_register_types(void)
static void accel_system_register_types(void)
{
type_register_static(&accel_ops_type_info);
}
type_init(accel_softmmu_register_types);
type_init(accel_system_register_types);

View File

@ -7,9 +7,9 @@
* See the COPYING file in the top-level directory.
*/
#ifndef ACCEL_SOFTMMU_H
#define ACCEL_SOFTMMU_H
#ifndef ACCEL_SYSTEM_H
#define ACCEL_SYSTEM_H
void accel_init_ops_interfaces(AccelClass *ac);
#endif /* ACCEL_SOFTMMU_H */
#endif /* ACCEL_SYSTEM_H */

View File

@ -30,7 +30,7 @@
#include "hw/core/accel-cpu.h"
#ifndef CONFIG_USER_ONLY
#include "accel-softmmu.h"
#include "accel-system.h"
#endif /* !CONFIG_USER_ONLY */
static const TypeInfo accel_type = {

View File

@ -1,5 +1,5 @@
specific_ss.add(files('accel-target.c'))
system_ss.add(files('accel-softmmu.c', 'accel-blocker.c'))
system_ss.add(files('accel-system.c', 'accel-blocker.c'))
user_ss.add(files('accel-user.c'))
subdir('tcg')

View File

@ -1,6 +1,6 @@
sysemu_stubs_ss = ss.source_set()
sysemu_stubs_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c'))
sysemu_stubs_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c'))
sysemu_stubs_ss.add(when: 'CONFIG_TCG', if_false: files('tcg-stub.c'))
system_stubs_ss = ss.source_set()
system_stubs_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c'))
system_stubs_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c'))
system_stubs_ss.add(when: 'CONFIG_TCG', if_false: files('tcg-stub.c'))
specific_ss.add_all(when: ['CONFIG_SYSTEM_ONLY'], if_true: sysemu_stubs_ss)
specific_ss.add_all(when: ['CONFIG_SYSTEM_ONLY'], if_true: system_stubs_ss)

View File

@ -37,7 +37,7 @@
#include "hw/core/cpu.h"
#include "sysemu/cpu-timers.h"
#include "sysemu/cpu-throttle.h"
#include "softmmu/timers-state.h"
#include "sysemu/cpu-timers-internal.h"
/*
* ICOUNT: Instruction Counter

View File

@ -940,7 +940,7 @@ void *page_get_target_data(target_ulong address)
void page_reset_target_data(target_ulong start, target_ulong last) { }
#endif /* TARGET_PAGE_DATA_SIZE */
/* The softmmu versions of these helpers are in cputlb.c. */
/* The system-mode versions of these helpers are in cputlb.c. */
static void *cpu_mmu_lookup(CPUState *cpu, vaddr addr,
MemOp mop, uintptr_t ra, MMUAccessType type)

View File

@ -104,6 +104,7 @@ static audio_driver *audio_driver_lookup(const char *name)
static QTAILQ_HEAD(AudioStateHead, AudioState) audio_states =
QTAILQ_HEAD_INITIALIZER(audio_states);
static AudioState *default_audio_state;
const struct mixeng_volume nominal_volume = {
.mute = 0,
@ -1660,6 +1661,7 @@ static void free_audio_state(AudioState *s)
void audio_cleanup(void)
{
default_audio_state = NULL;
while (!QTAILQ_EMPTY(&audio_states)) {
AudioState *s = QTAILQ_FIRST(&audio_states);
QTAILQ_REMOVE(&audio_states, s, list);
@ -1686,31 +1688,12 @@ static const VMStateDescription vmstate_audio = {
}
};
static void audio_validate_opts(Audiodev *dev, Error **errp);
static void audio_create_default_audiodevs(void)
void audio_create_default_audiodevs(void)
{
const char *drvname = getenv("QEMU_AUDIO_DRV");
if (!defaults_enabled()) {
return;
}
/* QEMU_AUDIO_DRV=none is used by libqtest. */
if (drvname && !g_str_equal(drvname, "none")) {
error_report("Please use -audiodev instead of QEMU_AUDIO_*");
exit(1);
}
for (int i = 0; audio_prio_list[i]; i++) {
if (drvname && !g_str_equal(drvname, audio_prio_list[i])) {
continue;
}
if (audio_driver_lookup(audio_prio_list[i])) {
QDict *dict = qdict_new();
Audiodev *dev = NULL;
AudiodevListEntry *e;
Visitor *v;
qdict_put_str(dict, "driver", audio_prio_list[i]);
@ -1721,10 +1704,7 @@ static void audio_create_default_audiodevs(void)
visit_type_Audiodev(v, NULL, &dev, &error_fatal);
visit_free(v);
audio_validate_opts(dev, &error_abort);
e = g_new0(AudiodevListEntry, 1);
e->dev = dev;
QSIMPLEQ_INSERT_TAIL(&default_audiodevs, e, next);
audio_define_default(dev, &error_abort);
}
}
}
@ -1770,6 +1750,7 @@ static AudioState *audio_init(Audiodev *dev, Error **errp)
goto out;
}
} else {
assert(!default_audio_state);
for (;;) {
AudiodevListEntry *e = QSIMPLEQ_FIRST(&default_audiodevs);
if (!e) {
@ -1808,38 +1789,29 @@ out:
return NULL;
}
AudioState *audio_get_default_audio_state(Error **errp)
{
if (!default_audio_state) {
default_audio_state = audio_init(NULL, errp);
if (!default_audio_state) {
if (!QSIMPLEQ_EMPTY(&audiodevs)) {
error_append_hint(errp, "Perhaps you wanted to use -audio or set audiodev=%s?\n",
QSIMPLEQ_FIRST(&audiodevs)->dev->id);
}
}
}
return default_audio_state;
}
bool AUD_register_card (const char *name, QEMUSoundCard *card, Error **errp)
{
if (!card->state) {
if (!QTAILQ_EMPTY(&audio_states)) {
/*
* FIXME: once it is possible to create an arbitrary
* default device via -audio DRIVER,OPT=VALUE (no "model"),
* replace this special case with the default AudioState*,
* storing it in a separate global. For now, keep the
* warning to encourage moving off magic use of the first
* -audiodev.
*/
if (QSIMPLEQ_EMPTY(&default_audiodevs)) {
dolog("Device %s: audiodev default parameter is deprecated, please "
"specify audiodev=%s\n", name,
QTAILQ_FIRST(&audio_states)->dev->id);
}
card->state = QTAILQ_FIRST(&audio_states);
} else {
if (QSIMPLEQ_EMPTY(&default_audiodevs)) {
audio_create_default_audiodevs();
}
card->state = audio_init(NULL, errp);
card->state = audio_get_default_audio_state(errp);
if (!card->state) {
if (!QSIMPLEQ_EMPTY(&audiodevs)) {
error_append_hint(errp, "Perhaps you wanted to set audiodev=%s?",
QSIMPLEQ_FIRST(&audiodevs)->dev->id);
}
return false;
}
}
}
card->name = g_strdup (name);
memset (&card->entries, 0, sizeof (card->entries));
@ -2172,6 +2144,17 @@ void audio_define(Audiodev *dev)
QSIMPLEQ_INSERT_TAIL(&audiodevs, e, next);
}
void audio_define_default(Audiodev *dev, Error **errp)
{
AudiodevListEntry *e;
audio_validate_opts(dev, errp);
e = g_new0(AudiodevListEntry, 1);
e->dev = dev;
QSIMPLEQ_INSERT_TAIL(&default_audiodevs, e, next);
}
void audio_init_audiodevs(void)
{
AudiodevListEntry *e;

View File

@ -169,11 +169,14 @@ void audio_sample_from_uint64(void *samples, int pos,
uint64_t left, uint64_t right);
void audio_define(Audiodev *audio);
void audio_define_default(Audiodev *dev, Error **errp);
void audio_parse_option(const char *opt);
void audio_create_default_audiodevs(void);
void audio_init_audiodevs(void);
void audio_help(void);
AudioState *audio_state_by_name(const char *name, Error **errp);
AudioState *audio_get_default_audio_state(Error **errp);
const char *audio_get_id(QEMUSoundCard *card);
#define DEFINE_AUDIO_PROPERTIES(_s, _f) \

10
configure vendored
View File

@ -252,7 +252,7 @@ docs="auto"
EXESUF=""
prefix="/usr/local"
qemu_suffix="qemu"
softmmu="yes"
system="yes"
linux_user=""
bsd_user=""
plugins="$default_feature"
@ -740,9 +740,9 @@ for opt do
;;
--enable-tcg) tcg="enabled"
;;
--disable-system) softmmu="no"
--disable-system) system="no"
;;
--enable-system) softmmu="yes"
--enable-system) system="yes"
;;
--disable-user)
linux_user="no" ;
@ -864,7 +864,7 @@ else
error_exit "user mode emulation not supported on this architecture"
fi
fi
if [ "$softmmu" = "yes" ]; then
if [ "$system" = "yes" ]; then
mak_wilds="${mak_wilds} $source_path/configs/targets/*-softmmu.mak"
fi
@ -1756,7 +1756,7 @@ for target in $target_list; do
case $target in
xtensa*-linux-user)
# the toolchain is not complete with headers, only build softmmu tests
# the toolchain is not complete with headers, only build system tests
continue
;;
*-softmmu)

View File

@ -202,7 +202,7 @@ static Property cpu_common_props[] = {
prctl_unalign_sigbus, false),
#else
/*
* Create a memory property for softmmu CPU object, so users can
* Create a memory property for system CPU object, so users can
* wire up its memory. The default if no link is set up is to use
* the system address space.
*/

View File

@ -23,12 +23,6 @@ deprecated.
System emulator command line arguments
--------------------------------------
Creating sound card devices without ``audiodev=`` property (since 4.2)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
When not using the deprecated legacy audio config, each sound card
should specify an ``audiodev=`` property.
Short-form boolean options (since 6.0)
''''''''''''''''''''''''''''''''''''''

View File

@ -442,11 +442,23 @@ line using a ``secret`` object instance.
The ``-audiodev`` and ``-audio`` command line options are now the only
way to specify audio backend settings.
Creating vnc without ``audiodev=`` property (removed in 8.2)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Using ``-audiodev`` to define the default audio backend (removed in 8.2)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
When using vnc, you should specify an ``audiodev=`` property if
you plan to transmit audio through the VNC protocol.
If no audiodev property is specified, previous versions would use the
first ``-audiodev`` command line option as a fallback. Starting with
version 8.2, audio backends created with ``-audiodev`` will only be
used by clients (sound cards, machines with embedded sound hardware, VNC)
that refer to it in an ``audiodev=`` property.
In order to configure a default audio backend, use the ``-audio``
command line option without specifying a ``model``; while previous
versions of QEMU required a model, starting with version 8.2
QEMU does not require a model and will not create any sound card
in this case.
Note that the default audio backend must be configured on the command
line if the ``-nodefaults`` options is used.
QEMU Machine Protocol (QMP) commands
------------------------------------

View File

@ -225,14 +225,14 @@ Target-dependent emulator sourcesets:
The sourceset is only used for system emulators.
Each subdirectory in ``target/`` instead should add one sourceset to each
of the ``target_arch`` and ``target_softmmu_arch``, which are used respectively
of the ``target_arch`` and ``target_system_arch``, which are used respectively
for all emulators and for system emulators only. For example::
arm_ss = ss.source_set()
arm_system_ss = ss.source_set()
...
target_arch += {'arm': arm_ss}
target_softmmu_arch += {'arm': arm_system_ss}
target_system_arch += {'arm': arm_system_ss}
Module sourcesets:
There are two dictionaries for modules: ``modules`` is used for

View File

@ -81,7 +81,7 @@ which you can run manually.
QTest Protocol
--------------
.. kernel-doc:: softmmu/qtest.c
.. kernel-doc:: system/qtest.c
:doc: QTest Protocol

View File

@ -1458,7 +1458,7 @@ TCG test dependencies
~~~~~~~~~~~~~~~~~~~~~
The TCG tests are deliberately very light on dependencies and are
either totally bare with minimal gcc lib support (for softmmu tests)
either totally bare with minimal gcc lib support (for system-mode tests)
or just glibc (for linux-user tests). This is because getting a cross
compiler to work with additional libraries can be challenging.

View File

@ -103,7 +103,7 @@ static inline int tohex(int v)
}
/*
* Connection helpers for both softmmu and user backends
* Connection helpers for both system and user backends
*/
void gdb_put_strbuf(void);
@ -229,7 +229,7 @@ void gdb_breakpoint_remove_all(CPUState *cs);
* @is_write: is it a write operation
*
* This function is specialised depending on the mode we are running
* in. For softmmu guests we can switch the interpretation of the
* in. For system guests we can switch the interpretation of the
* address to a physical address.
*/
int gdb_target_memory_rw_debug(CPUState *cs, hwaddr addr,

View File

@ -1,6 +1,6 @@
#
# The main gdbstub still relies on per-build definitions of various
# types. The bits pushed to softmmu/user.c try to use guest agnostic
# types. The bits pushed to system/user.c try to use guest agnostic
# types such as hwaddr.
#
@ -12,7 +12,7 @@ gdb_system_ss = ss.source_set()
# We build two versions of gdbstub, one for each mode
gdb_user_ss.add(files('gdbstub.c', 'user.c'))
gdb_system_ss.add(files('gdbstub.c', 'softmmu.c'))
gdb_system_ss.add(files('gdbstub.c', 'system.c'))
gdb_user_ss = gdb_user_ss.apply(config_targetos, strict: false)
gdb_system_ss = gdb_system_ss.apply(config_targetos, strict: false)
@ -23,15 +23,15 @@ libgdb_user = static_library('gdb_user',
c_args: '-DCONFIG_USER_ONLY',
build_by_default: false)
libgdb_softmmu = static_library('gdb_softmmu',
libgdb_system = static_library('gdb_system',
gdb_system_ss.sources() + genh,
name_suffix: 'fa',
build_by_default: false)
gdb_user = declare_dependency(link_whole: libgdb_user)
user_ss.add(gdb_user)
gdb_softmmu = declare_dependency(link_whole: libgdb_softmmu)
system_ss.add(gdb_softmmu)
gdb_system = declare_dependency(link_whole: libgdb_system)
system_ss.add(gdb_system)
common_ss.add(files('syscalls.c'))

View File

@ -104,7 +104,7 @@ static void gdb_chr_event(void *opaque, QEMUChrEvent event)
}
/*
* In softmmu mode we stop the VM and wait to send the syscall packet
* In system-mode we stop the VM and wait to send the syscall packet
* until notification that the CPU has stopped. This must be done
* because if the packet is sent now the reply from the syscall
* request could be received while the CPU is still in the running

View File

@ -28,5 +28,5 @@ gdbstub_err_checksum_invalid(uint8_t ch) "got invalid command checksum digit: 0x
gdbstub_err_checksum_incorrect(uint8_t expected, uint8_t got) "got command packet with incorrect checksum, expected=0x%02x, received=0x%02x"
gdbstub_err_unexpected_runpkt(uint8_t ch) "unexpected packet (0x%02x) while target running"
# softmmu.c
# system.c
gdbstub_hit_watchpoint(const char *type, int cpu_gdb_index, uint64_t vaddr) "Watchpoint hit, type=\"%s\" cpu=%d, vaddr=0x%" PRIx64 ""

View File

@ -228,8 +228,8 @@ static void cpu_common_initfn(Object *obj)
cpu->cpu_index = UNASSIGNED_CPU_INDEX;
cpu->cluster_index = UNASSIGNED_CLUSTER_INDEX;
cpu->gdb_num_regs = cpu->gdb_num_g_regs = cc->gdb_num_core_regs;
/* *-user doesn't have configurable SMP topology */
/* the default value is changed by qemu_init_vcpu() for softmmu */
/* user-mode doesn't have configurable SMP topology */
/* the default value is changed by qemu_init_vcpu() for system-mode */
cpu->nr_cores = 1;
cpu->nr_threads = 1;
cpu->cflags_next_tb = -1;

View File

@ -43,8 +43,8 @@
* See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80878
*
* This interpretation is not especially helpful for QEMU.
* For softmmu, all RAM is always read/write from the hypervisor.
* For user-only, if the guest doesn't implement such an __atomic_read
* For system-mode, all RAM is always read/write from the hypervisor.
* For user-mode, if the guest doesn't implement such an __atomic_read
* then the host need not worry about it either.
*
* Moreover, using libatomic is not an option, because its interface is

View File

@ -7,8 +7,12 @@
* This code is licensed under the GPL
*/
#ifndef SEMIHOSTING_SOFTMMU_UACCESS_H
#define SEMIHOSTING_SOFTMMU_UACCESS_H
#ifndef SEMIHOSTING_UACCESS_H
#define SEMIHOSTING_UACCESS_H
#ifdef CONFIG_USER_ONLY
#error Cannot include semihosting/uaccess.h from user emulation
#endif
#include "cpu.h"
@ -42,18 +46,18 @@
#define put_user_ual(arg, p) put_user_u32(arg, p)
void *softmmu_lock_user(CPUArchState *env, target_ulong addr,
void *uaccess_lock_user(CPUArchState *env, target_ulong addr,
target_ulong len, bool copy);
#define lock_user(type, p, len, copy) softmmu_lock_user(env, p, len, copy)
#define lock_user(type, p, len, copy) uaccess_lock_user(env, p, len, copy)
char *softmmu_lock_user_string(CPUArchState *env, target_ulong addr);
#define lock_user_string(p) softmmu_lock_user_string(env, p)
char *uaccess_lock_user_string(CPUArchState *env, target_ulong addr);
#define lock_user_string(p) uaccess_lock_user_string(env, p)
void softmmu_unlock_user(CPUArchState *env, void *p,
void uaccess_unlock_user(CPUArchState *env, void *p,
target_ulong addr, target_ulong len);
#define unlock_user(s, args, len) softmmu_unlock_user(env, s, args, len)
#define unlock_user(s, args, len) uaccess_unlock_user(env, s, args, len)
ssize_t softmmu_strlen_user(CPUArchState *env, target_ulong addr);
#define target_strlen(p) softmmu_strlen_user(env, p)
ssize_t uaccess_strlen_user(CPUArchState *env, target_ulong addr);
#define target_strlen(p) uaccess_strlen_user(env, p)
#endif /* SEMIHOSTING_SOFTMMU_UACCESS_H */

View File

@ -20,13 +20,10 @@
#include "cpu.h"
#ifdef CONFIG_HVF
uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx,
int reg);
extern bool hvf_allowed;
#define hvf_enabled() (hvf_allowed)
#else /* !CONFIG_HVF */
#define hvf_enabled() 0
#define hvf_get_supported_cpuid(func, idx, reg) 0
#endif /* !CONFIG_HVF */
#endif /* NEED_CPU_H */

View File

@ -11,7 +11,7 @@
#include "qapi/qapi-commands-run-state.h"
/* in softmmu/runstate-action.c */
/* in system/runstate-action.c */
extern RebootAction reboot_action;
extern ShutdownAction shutdown_action;
extern PanicAction panic_action;

View File

@ -265,7 +265,7 @@ void tcg_gen_exit_tb(const TranslationBlock *tb, unsigned idx);
*
* See tcg/README for more info about this TCG operation.
*
* NOTE: In softmmu emulation, direct jumps with goto_tb are only safe within
* NOTE: In system emulation, direct jumps with goto_tb are only safe within
* the pages this TB resides in because we don't take care of direct jumps when
* address mapping changes, e.g. in tlb_flush(). In user mode, there's only a
* static address translation, so the destination address is always valid, TBs

View File

@ -3198,7 +3198,7 @@ modules = {}
target_modules = {}
hw_arch = {}
target_arch = {}
target_softmmu_arch = {}
target_system_arch = {}
target_user_arch = {}
###############
@ -3291,7 +3291,7 @@ if have_system
'hw/gpio',
'migration',
'net',
'softmmu',
'system',
'ui',
'hw/remote',
]
@ -3418,7 +3418,7 @@ endif
common_ss.add(files('cpu-common.c'))
specific_ss.add(files('cpu-target.c'))
subdir('softmmu')
subdir('system')
# Work around a gcc bug/misfeature wherein constant propagation looks
# through an alias:
@ -3480,7 +3480,7 @@ modinfo_generate = find_program('scripts/modinfo-generate.py')
modinfo_files = []
block_mods = []
softmmu_mods = []
system_mods = []
foreach d, list : modules
if not (d == 'block' ? have_block : have_system)
continue
@ -3494,7 +3494,7 @@ foreach d, list : modules
if d == 'block'
block_mods += sl
else
softmmu_mods += sl
system_mods += sl
endif
if module_ss.sources() != []
# FIXME: Should use sl.extract_all_objects(recursive: true) as
@ -3538,7 +3538,7 @@ foreach d, list : target_modules
include_directories: target_inc,
c_args: c_args,
pic: true)
softmmu_mods += sl
system_mods += sl
# FIXME: Should use sl.extract_all_objects(recursive: true) too.
modinfo_files += custom_target(module_name + '.modinfo',
output: module_name + '.modinfo',
@ -3581,7 +3581,7 @@ block_syms = custom_target('block.syms', output: 'block.syms',
capture: true,
command: [undefsym, nm, '@INPUT@'])
qemu_syms = custom_target('qemu.syms', output: 'qemu.syms',
input: [libqemuutil, softmmu_mods],
input: [libqemuutil, system_mods],
capture: true,
command: [undefsym, nm, '@INPUT@'])
@ -3666,7 +3666,7 @@ common_ss.add(hwcore)
###########
emulator_modules = []
foreach m : block_mods + softmmu_mods
foreach m : block_mods + system_mods
emulator_modules += shared_module(m.name(),
build_by_default: true,
name_prefix: '',
@ -3718,7 +3718,7 @@ foreach target : target_dirs
endif
if target.endswith('-softmmu')
target_type='system'
t = target_softmmu_arch[target_base_arch].apply(config_target, strict: false)
t = target_system_arch[target_base_arch].apply(config_target, strict: false)
arch_srcs += t.sources()
arch_deps += t.dependencies()
@ -3797,14 +3797,14 @@ foreach target : target_dirs
execs = [{
'name': 'qemu-system-' + target_name,
'win_subsystem': 'console',
'sources': files('softmmu/main.c'),
'sources': files('system/main.c'),
'dependencies': []
}]
if targetos == 'windows' and (sdl.found() or gtk.found())
execs += [{
'name': 'qemu-system-' + target_name + 'w',
'win_subsystem': 'windows',
'sources': files('softmmu/main.c'),
'sources': files('system/main.c'),
'dependencies': []
}]
endif

View File

@ -728,20 +728,22 @@ ERST
DEF("audio", HAS_ARG, QEMU_OPTION_audio,
"-audio [driver=]driver[,prop[=value][,...]]\n"
" specifies default audio backend when `audiodev` is not\n"
" used to create a machine or sound device;"
" options are the same as for -audiodev\n"
"-audio [driver=]driver,model=value[,prop[=value][,...]]\n"
" specifies the audio backend and device to use;\n"
" apart from 'model', options are the same as for -audiodev.\n"
" use '-audio model=help' to show possible devices.\n",
QEMU_ARCH_ALL)
SRST
``-audio [driver=]driver,model=value[,prop[=value][,...]]``
This option is a shortcut for configuring both the guest audio
hardware and the host audio backend in one go.
The driver option is the same as with the corresponding ``-audiodev`` option below.
The guest hardware model can be set with ``model=modelname``.
Use ``driver=help`` to list the available drivers,
and ``model=help`` to list the available device types.
``-audio [driver=]driver[,model=value][,prop[=value][,...]]``
If the ``model`` option is specified, ``-audio`` is a shortcut
for configuring both the guest audio hardware and the host audio
backend in one go. The guest hardware model can be set with
``model=modelname``. Use ``model=help`` to list the available
device types.
The following two example do exactly the same, to show how ``-audio``
can be used to shorten the command line length:
@ -750,6 +752,17 @@ SRST
|qemu_system| -audiodev pa,id=pa -device sb16,audiodev=pa
|qemu_system| -audio pa,model=sb16
If the ``model`` option is not specified, ``-audio`` is used to
configure a default audio backend that will be used whenever the
``audiodev`` property is not set on a device or machine. In
particular, ``-audio none`` ensures that no audio is produced even
for machines that have embedded sound hardware.
In both cases, the driver option is the same as with the corresponding
``-audiodev`` option below. Use ``driver=help`` to list the available
drivers.
ERST
DEF("audiodev", HAS_ARG, QEMU_OPTION_audiodev,

View File

@ -466,7 +466,7 @@ sub top_of_kernel_tree {
my @tree_check = (
"COPYING", "MAINTAINERS", "Makefile",
"README.rst", "docs", "VERSION",
"linux-user", "softmmu"
"linux-user", "system"
);
foreach my $check (@tree_check) {

View File

@ -148,7 +148,7 @@ tcg
~ (/qemu)?(/accel/tcg|/replay|/tcg)/.*
sysemu
~ (/qemu)?(/softmmu/.*|/accel/.*)
~ (/qemu)?(/system/.*|/accel/.*)
(headers)
~ (/qemu)?(/include/.*)

View File

@ -796,7 +796,7 @@ sub top_of_tree {
&& (-d "${lk_path}docs")
&& (-f "${lk_path}VERSION")
&& (-d "${lk_path}linux-user/")
&& (-d "${lk_path}softmmu/")) {
&& (-d "${lk_path}system/")) {
return 1;
}
return 0;

View File

@ -43,10 +43,10 @@ EXTRA_CFLAGS="$CFLAGS -U __OPTIMIZE__"
if ! { [ -e "./COPYING" ] &&
[ -e "./MAINTAINERS" ] &&
[ -e "./Makefile" ] &&
[ -e "./docs" ] &&
[ -d "./docs" ] &&
[ -e "./VERSION" ] &&
[ -e "./linux-user" ] &&
[ -e "./softmmu" ];} ; then
[ -d "./linux-user" ] &&
[ -d "./system" ];} ; then
fatal "Please run the script from the top of the QEMU tree"
fi

View File

@ -202,13 +202,13 @@ static LayoutInfo common_semi_find_bases(CPUState *cs)
* The semihosting API has no concept of its errno being thread-safe,
* as the API design predates SMP CPUs and was intended as a simple
* real-hardware set of debug functionality. For QEMU, we make the
* errno be per-thread in linux-user mode; in softmmu it is a simple
* errno be per-thread in linux-user mode; in system-mode it is a simple
* global, and we assume that the guest takes care of avoiding any races.
*/
#ifndef CONFIG_USER_ONLY
static target_ulong syscall_err;
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#endif
static inline uint32_t get_swi_errno(CPUState *cs)

View File

@ -12,7 +12,7 @@
* linux-user targets. However in that use case no configuration of
* the outputs and command lines is supported.
*
* The config module is common to all softmmu targets however as vl.c
* The config module is common to all system targets however as vl.c
* needs to link against the helpers.
*
* SPDX-License-Identifier: GPL-2.0-or-later

View File

@ -15,7 +15,7 @@
#ifdef CONFIG_USER_ONLY
#include "qemu.h"
#else
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include CONFIG_DEVICES
#endif

View File

@ -15,7 +15,7 @@
#ifdef CONFIG_USER_ONLY
#include "qemu.h"
#else
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#endif

View File

@ -9,9 +9,9 @@
#include "qemu/osdep.h"
#include "exec/exec-all.h"
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
void *softmmu_lock_user(CPUArchState *env, target_ulong addr,
void *uaccess_lock_user(CPUArchState *env, target_ulong addr,
target_ulong len, bool copy)
{
void *p = malloc(len);
@ -24,7 +24,7 @@ void *softmmu_lock_user(CPUArchState *env, target_ulong addr,
return p;
}
ssize_t softmmu_strlen_user(CPUArchState *env, target_ulong addr)
ssize_t uaccess_strlen_user(CPUArchState *env, target_ulong addr)
{
int mmu_idx = cpu_mmu_index(env, false);
size_t len = 0;
@ -72,16 +72,16 @@ ssize_t softmmu_strlen_user(CPUArchState *env, target_ulong addr)
}
}
char *softmmu_lock_user_string(CPUArchState *env, target_ulong addr)
char *uaccess_lock_user_string(CPUArchState *env, target_ulong addr)
{
ssize_t len = softmmu_strlen_user(env, addr);
ssize_t len = uaccess_strlen_user(env, addr);
if (len < 0) {
return NULL;
}
return softmmu_lock_user(env, addr, len + 1, true);
return uaccess_lock_user(env, addr, len + 1, true);
}
void softmmu_unlock_user(CPUArchState *env, void *p,
void uaccess_unlock_user(CPUArchState *env, void *p,
target_ulong addr, target_ulong len)
{
if (len) {

View File

@ -1 +0,0 @@
#include "trace/trace-softmmu.h"

View File

@ -1,9 +1,9 @@
/*
* Semihosting Stubs for SoftMMU
* Semihosting Stubs for system emulation
*
* Copyright (c) 2019 Linaro Ltd
*
* Stubs for SoftMMU targets that don't actually do semihosting.
* Stubs for system targets that don't actually do semihosting.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/

View File

@ -36,7 +36,7 @@
#include "hw/core/cpu.h"
#include "sysemu/cpu-timers.h"
#include "sysemu/cpu-throttle.h"
#include "timers-state.h"
#include "sysemu/cpu-timers-internal.h"
/* clock and ticks */

View File

@ -3638,7 +3638,7 @@ void memory_region_init_rom_device(MemoryRegion *mr,
}
/*
* Support softmmu builds with CONFIG_FUZZ using a weak symbol and a stub for
* Support system builds with CONFIG_FUZZ using a weak symbol and a stub for
* the fuzz_dma_read_cb callback
*/
#ifdef CONFIG_FUZZ

View File

@ -2301,8 +2301,10 @@ RAMBlock *qemu_ram_block_by_name(const char *name)
return NULL;
}
/* Some of the softmmu routines need to translate from a host pointer
(typically a TLB entry) back to a ram offset. */
/*
* Some of the system routines need to translate from a host pointer
* (typically a TLB entry) back to a ram offset.
*/
ram_addr_t qemu_ram_addr_from_host(void *ptr)
{
RAMBlock *block;

View File

@ -21,7 +21,7 @@ flatview_destroy(void *view, void *root) "%p (root %p)"
flatview_destroy_rcu(void *view, void *root) "%p (root %p)"
global_dirty_changed(unsigned int bitmask) "bitmask 0x%"PRIx32
# softmmu.c
# cpus.c
vm_stop_flush_all(int ret) "ret %d"
# vl.c

1
system/trace.h Normal file
View File

@ -0,0 +1 @@
#include "trace/trace-system.h"

View File

@ -184,6 +184,7 @@ static const char *qtest_log;
static bool opt_one_insn_per_tb;
static int has_defaults = 1;
static int default_audio = 1;
static int default_serial = 1;
static int default_parallel = 1;
static int default_monitor = 1;
@ -1327,6 +1328,7 @@ static void qemu_disable_default_devices(void)
default_sdcard = 0;
}
if (!has_defaults) {
default_audio = 0;
default_monitor = 0;
default_net = 0;
default_vga = 0;
@ -1963,6 +1965,9 @@ static void qemu_create_early_backends(void)
*/
configure_blockdev(&bdo_queue, machine_class, snapshot);
audio_init_audiodevs();
if (default_audio) {
audio_create_default_audiodevs();
}
}
@ -2925,14 +2930,16 @@ void qemu_init(int argc, char **argv)
break;
#endif
case QEMU_OPTION_audiodev:
default_audio = 0;
audio_parse_option(optarg);
break;
case QEMU_OPTION_audio: {
bool help;
char *model;
char *model = NULL;
Audiodev *dev = NULL;
Visitor *v;
QDict *dict = keyval_parse(optarg, "driver", &help, &error_fatal);
default_audio = 0;
if (help || (qdict_haskey(dict, "driver") &&
is_help_option(qdict_get_str(dict, "driver")))) {
audio_help();
@ -2941,22 +2948,25 @@ void qemu_init(int argc, char **argv)
if (!qdict_haskey(dict, "id")) {
qdict_put_str(dict, "id", "audiodev0");
}
if (!qdict_haskey(dict, "model")) {
error_setg(&error_fatal, "Parameter 'model' is missing");
}
if (qdict_haskey(dict, "model")) {
model = g_strdup(qdict_get_str(dict, "model"));
qdict_del(dict, "model");
if (is_help_option(model)) {
show_valid_soundhw();
exit(0);
}
}
v = qobject_input_visitor_new_keyval(QOBJECT(dict));
qobject_unref(dict);
visit_type_Audiodev(v, NULL, &dev, &error_fatal);
visit_free(v);
if (model) {
audio_define(dev);
select_soundhw(model, dev->id);
g_free(model);
} else {
audio_define_default(dev, &error_fatal);
}
break;
}
case QEMU_OPTION_h:

View File

@ -15,4 +15,4 @@ alpha_system_ss = ss.source_set()
alpha_system_ss.add(files('machine.c'))
target_arch += {'alpha': alpha_ss}
target_softmmu_arch += {'alpha': alpha_system_ss}
target_system_arch += {'alpha': alpha_system_ss}

View File

@ -35,4 +35,4 @@ else
endif
target_arch += {'arm': arm_ss}
target_softmmu_arch += {'arm': arm_system_ss}
target_system_arch += {'arm': arm_system_ss}

View File

@ -17,4 +17,4 @@ avr_ss.add(files(
avr_system_ss.add(files('machine.c'))
target_arch += {'avr': avr_ss}
target_softmmu_arch += {'avr': avr_system_ss}
target_system_arch += {'avr': avr_system_ss}

View File

@ -14,4 +14,4 @@ cris_system_ss.add(files(
))
target_arch += {'cris': cris_ss}
target_softmmu_arch += {'cris': cris_system_ss}
target_system_arch += {'cris': cris_system_ss}

View File

@ -20,4 +20,4 @@ hppa_system_ss.add(files(
))
target_arch += {'hppa': hppa_ss}
target_softmmu_arch += {'hppa': hppa_system_ss}
target_system_arch += {'hppa': hppa_system_ss}

View File

@ -26,6 +26,7 @@
#include "tcg/helper-tcg.h"
#include "sysemu/reset.h"
#include "sysemu/hvf.h"
#include "hvf/hvf-i386.h"
#include "kvm/kvm_i386.h"
#include "sev.h"
#include "qapi/error.h"
@ -718,7 +719,7 @@ void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
CPUID_7_0_EBX_HLE
CPUID_7_0_EBX_INVPCID, CPUID_7_0_EBX_RTM */
#if defined CONFIG_SOFTMMU || defined CONFIG_LINUX
#if !defined CONFIG_USER_ONLY || defined CONFIG_LINUX
#define TCG_7_0_ECX_RDPID CPUID_7_0_ECX_RDPID
#else
#define TCG_7_0_ECX_RDPID 0

View File

@ -15,6 +15,7 @@
#include "hw/boards.h"
#include "sysemu/hvf.h"
#include "hw/core/accel-cpu.h"
#include "hvf-i386.h"
static void hvf_cpu_max_instance_init(X86CPU *cpu)
{

View File

@ -16,11 +16,7 @@
#ifndef HVF_I386_H
#define HVF_I386_H
#include "qemu/accel.h"
#include "sysemu/hvf.h"
#include "sysemu/hvf_int.h"
#include "cpu.h"
#include "x86.h"
uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx, int reg);
void hvf_handle_io(CPUArchState *, uint16_t, void *, int, int, int);

View File

@ -25,6 +25,7 @@
#include "x86.h"
#include "vmx.h"
#include "sysemu/hvf.h"
#include "hvf-i386.h"
static bool xgetbv(uint32_t cpuid_ecx, uint32_t idx, uint64_t *xcr)
{

View File

@ -1,14 +1,14 @@
i386_softmmu_kvm_ss = ss.source_set()
i386_kvm_ss = ss.source_set()
i386_softmmu_kvm_ss.add(files(
i386_kvm_ss.add(files(
'kvm.c',
'kvm-cpu.c',
))
i386_softmmu_kvm_ss.add(when: 'CONFIG_XEN_EMU', if_true: files('xen-emu.c'))
i386_kvm_ss.add(when: 'CONFIG_XEN_EMU', if_true: files('xen-emu.c'))
i386_softmmu_kvm_ss.add(when: 'CONFIG_SEV', if_false: files('sev-stub.c'))
i386_kvm_ss.add(when: 'CONFIG_SEV', if_false: files('sev-stub.c'))
i386_system_ss.add(when: 'CONFIG_HYPERV', if_true: files('hyperv.c'), if_false: files('hyperv-stub.c'))
i386_system_ss.add_all(when: 'CONFIG_KVM', if_true: i386_softmmu_kvm_ss)
i386_system_ss.add_all(when: 'CONFIG_KVM', if_true: i386_kvm_ss)

View File

@ -31,5 +31,5 @@ subdir('hvf')
subdir('tcg')
target_arch += {'i386': i386_ss}
target_softmmu_arch += {'i386': i386_system_ss}
target_system_arch += {'i386': i386_system_ss}
target_user_arch += {'i386': i386_user_ss}

View File

@ -134,7 +134,7 @@ void helper_wrpkru(CPUX86State *env, uint32_t ecx, uint64_t val)
target_ulong HELPER(rdpid)(CPUX86State *env)
{
#if defined CONFIG_SOFTMMU
#if !defined CONFIG_USER_ONLY
return env->tsc_aux;
#elif defined CONFIG_LINUX && defined CONFIG_GETCPU
unsigned cpu, node;

View File

@ -178,10 +178,10 @@ typedef struct DisasContext {
#else
#define CODE64(S) (((S)->flags & HF_CS64_MASK) != 0)
#endif
#if defined(CONFIG_SOFTMMU) && !defined(TARGET_X86_64)
#define LMA(S) false
#else
#if defined(CONFIG_USER_ONLY) || defined(TARGET_X86_64)
#define LMA(S) (((S)->flags & HF_LMA_MASK) != 0)
#else
#define LMA(S) false
#endif
#ifdef TARGET_X86_64

View File

@ -30,4 +30,4 @@ common_ss.add(when: 'CONFIG_LOONGARCH_DIS', if_true: [files('disas.c'), gen])
loongarch_ss.add_all(when: 'CONFIG_TCG', if_true: [loongarch_tcg_ss])
target_arch += {'loongarch': loongarch_ss}
target_softmmu_arch += {'loongarch': loongarch_system_ss}
target_system_arch += {'loongarch': loongarch_system_ss}

View File

@ -27,7 +27,7 @@
#include "gdbstub/syscalls.h"
#include "gdbstub/helpers.h"
#include "semihosting/syscalls.h"
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include "hw/boards.h"
#include "qemu/log.h"

View File

@ -16,4 +16,4 @@ m68k_system_ss.add(files(
))
target_arch += {'m68k': m68k_ss}
target_softmmu_arch += {'m68k': m68k_system_ss}
target_system_arch += {'m68k': m68k_system_ss}

View File

@ -17,4 +17,4 @@ microblaze_system_ss.add(files(
))
target_arch += {'microblaze': microblaze_ss}
target_softmmu_arch += {'microblaze': microblaze_system_ss}
target_system_arch += {'microblaze': microblaze_system_ss}

View File

@ -19,5 +19,5 @@ endif
mips_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'))
target_arch += {'mips': mips_ss}
target_softmmu_arch += {'mips': mips_system_ss}
target_system_arch += {'mips': mips_system_ss}
target_user_arch += {'mips': mips_user_ss}

View File

@ -22,7 +22,7 @@
#include "qemu/log.h"
#include "gdbstub/syscalls.h"
#include "gdbstub/helpers.h"
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include "semihosting/semihost.h"
#include "semihosting/console.h"
#include "semihosting/syscalls.h"

View File

@ -14,4 +14,4 @@ nios2_system_ss.add(files(
))
target_arch += {'nios2': nios2_ss}
target_softmmu_arch += {'nios2': nios2_system_ss}
target_system_arch += {'nios2': nios2_system_ss}

View File

@ -26,7 +26,7 @@
#include "gdbstub/syscalls.h"
#include "gdbstub/helpers.h"
#include "semihosting/syscalls.h"
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include "qemu/log.h"
#define HOSTED_EXIT 0

View File

@ -22,4 +22,4 @@ openrisc_system_ss.add(files(
))
target_arch += {'openrisc': openrisc_ss}
target_softmmu_arch += {'openrisc': openrisc_system_ss}
target_system_arch += {'openrisc': openrisc_system_ss}

View File

@ -55,4 +55,4 @@ ppc_system_ss.add(when: 'TARGET_PPC64', if_true: files(
))
target_arch += {'ppc': ppc_ss}
target_softmmu_arch += {'ppc': ppc_system_ss}
target_system_arch += {'ppc': ppc_system_ss}

View File

@ -39,4 +39,4 @@ riscv_system_ss.add(files(
))
target_arch += {'riscv': riscv_ss}
target_softmmu_arch += {'riscv': riscv_system_ss}
target_system_arch += {'riscv': riscv_system_ss}

View File

@ -100,7 +100,7 @@ static inline target_ulong adjust_addr(CPURISCVState *env, target_ulong addr)
/*
* This function checks watchpoint before real load operation.
*
* In softmmu mode, the TLB API probe_access is enough for watchpoint check.
* In system mode, the TLB API probe_access is enough for watchpoint check.
* In user mode, there is no watchpoint support now.
*
* It will trigger an exception if there is no mapping in TLB

View File

@ -13,4 +13,4 @@ rx_ss.add(files(
'disas.c'))
target_arch += {'rx': rx_ss}
target_softmmu_arch += {'rx': ss.source_set()}
target_system_arch += {'rx': ss.source_set()}

View File

@ -40,5 +40,5 @@ subdir('tcg')
subdir('kvm')
target_arch += {'s390x': s390x_ss}
target_softmmu_arch += {'s390x': s390x_system_ss}
target_system_arch += {'s390x': s390x_system_ss}
target_user_arch += {'s390x': s390x_user_ss}

Some files were not shown because too many files have changed in this diff Show More