diff options
author | Yang Zhong <yang.zhong@intel.com> | 2017-06-02 14:06:44 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2017-06-15 11:04:06 +0200 |
commit | d9bb58e51068dfc48746c6af0179926c8dc05bce (patch) | |
tree | bd0c3683d7acdf7b2f67ac38b7d7571dbd103694 /cpu-exec-common.c | |
parent | a9ded6017ea39ea845fb1acf5187528bd74acb04 (diff) | |
download | qemu-d9bb58e51068dfc48746c6af0179926c8dc05bce.zip qemu-d9bb58e51068dfc48746c6af0179926c8dc05bce.tar.gz qemu-d9bb58e51068dfc48746c6af0179926c8dc05bce.tar.bz2 |
tcg: move tcg related files into accel/tcg/ subdirectory
move cputlb.c, cpu-exec-common.c and cpu-exec.c related tcg exec
file into accel/tcg/ subdirectory.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <1496383606-18060-3-git-send-email-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'cpu-exec-common.c')
-rw-r--r-- | cpu-exec-common.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/cpu-exec-common.c b/cpu-exec-common.c deleted file mode 100644 index e81da27..0000000 --- a/cpu-exec-common.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * emulator main execution loop - * - * Copyright (c) 2003-2005 Fabrice Bellard - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, see <http://www.gnu.org/licenses/>. - */ - -#include "qemu/osdep.h" -#include "cpu.h" -#include "sysemu/cpus.h" -#include "exec/exec-all.h" -#include "exec/memory-internal.h" - -/* exit the current TB, but without causing any exception to be raised */ -void cpu_loop_exit_noexc(CPUState *cpu) -{ - /* XXX: restore cpu registers saved in host registers */ - - cpu->exception_index = -1; - siglongjmp(cpu->jmp_env, 1); -} - -#if defined(CONFIG_SOFTMMU) -void cpu_reloading_memory_map(void) -{ - if (qemu_in_vcpu_thread() && current_cpu->running) { - /* The guest can in theory prolong the RCU critical section as long - * as it feels like. The major problem with this is that because it - * can do multiple reconfigurations of the memory map within the - * critical section, we could potentially accumulate an unbounded - * collection of memory data structures awaiting reclamation. - * - * Because the only thing we're currently protecting with RCU is the - * memory data structures, it's sufficient to break the critical section - * in this callback, which we know will get called every time the - * memory map is rearranged. - * - * (If we add anything else in the system that uses RCU to protect - * its data structures, we will need to implement some other mechanism - * to force TCG CPUs to exit the critical section, at which point this - * part of this callback might become unnecessary.) - * - * This pair matches cpu_exec's rcu_read_lock()/rcu_read_unlock(), which - * only protects cpu->as->dispatch. Since we know our caller is about - * to reload it, it's safe to split the critical section. - */ - rcu_read_unlock(); - rcu_read_lock(); - } -} -#endif - -void cpu_loop_exit(CPUState *cpu) -{ - siglongjmp(cpu->jmp_env, 1); -} - -void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc) -{ - if (pc) { - cpu_restore_state(cpu, pc); - } - siglongjmp(cpu->jmp_env, 1); -} - -void cpu_loop_exit_atomic(CPUState *cpu, uintptr_t pc) -{ - cpu->exception_index = EXCP_ATOMIC; - cpu_loop_exit_restore(cpu, pc); -} |