aboutsummaryrefslogtreecommitdiff
path: root/include/qom/cpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/qom/cpu.h')
-rw-r--r--include/qom/cpu.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index 46f2247274..ee1a7c878a 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -20,6 +20,7 @@
#ifndef QEMU_CPU_H
#define QEMU_CPU_H
+#include <signal.h>
#include "hw/qdev-core.h"
#include "qemu/thread.h"
@@ -65,9 +66,13 @@ struct kvm_run;
* @nr_cores: Number of cores within this CPU package.
* @nr_threads: Number of threads within this CPU.
* @numa_node: NUMA node this CPU is belonging to.
+ * @host_tid: Host thread ID.
+ * @running: #true if CPU is currently running (usermode).
* @created: Indicates whether the CPU thread has been successfully created.
* @stop: Indicates a pending stop request.
* @stopped: Indicates the CPU has been artificially stopped.
+ * @env_ptr: Pointer to subclass-specific CPUArchState field.
+ * @current_tb: Currently executing TB.
* @kvm_fd: vCPU file descriptor for KVM.
*
* State of one CPU core or thread.
@@ -86,12 +91,18 @@ struct CPUState {
HANDLE hThread;
#endif
int thread_id;
+ uint32_t host_tid;
+ bool running;
struct QemuCond *halt_cond;
struct qemu_work_item *queued_work_first, *queued_work_last;
bool thread_kicked;
bool created;
bool stop;
bool stopped;
+ volatile sig_atomic_t exit_request;
+
+ void *env_ptr; /* CPUArchState */
+ struct TranslationBlock *current_tb;
int kvm_fd;
bool kvm_vcpu_dirty;