[−][src]Struct panda::prelude::CPUState
CPUState: @cpu_index: CPU index (informative). @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 (lockless). @has_waiter: #true if a CPU is currently waiting for the cpu_exec_end; valid under cpu_list_lock. @created: Indicates whether the CPU thread has been successfully created. @interrupt_request: Indicates a pending interrupt request. @halted: Nonzero if the CPU is in suspended state. @stop: Indicates a pending stop request. @stopped: Indicates the CPU has been artificially stopped. @unplug: Indicates a pending CPU unplug request. @crash_occurred: Indicates the OS reported a crash (panic) for this CPU @tcg_exit_req: Set to force TCG to stop executing linked TBs for this CPU and return to its top level loop. @singlestep_enabled: Flags for single-stepping. @icount_extra: Instructions until next timer event. @icount_decr: Number of cycles left, with interrupt flag in high bit. This allows a single read-compare-cbranch-write sequence to test for both decrementer underflow and exceptions. @can_do_io: Nonzero if memory-mapped IO is safe. Deterministic execution requires that IO only be performed on the last instruction of a TB so that interrupts take effect immediately. @cpu_ases: Pointer to array of CPUAddressSpaces (which define the AddressSpaces this CPU has) @num_ases: number of CPUAddressSpaces in @cpu_ases @as: Pointer to the first AddressSpace, for the convenience of targets which only have a single AddressSpace @env_ptr: Pointer to subclass-specific CPUArchState field. @gdb_regs: Additional GDB registers. @gdb_num_regs: Number of total registers accessible to GDB. @gdb_num_g_regs: Number of registers in GDB 'g' packets. @next_cpu: Next CPU sharing TB cache. @opaque: User data. @mem_io_pc: Host Program Counter at which the memory was accessed. @mem_io_vaddr: Target virtual address at which the memory was accessed. @kvm_fd: vCPU file descriptor for KVM. @work_mutex: Lock to prevent multiple access to queued_work_*. @queued_work_first: First asynchronous work pending. @trace_dstate: Dynamic tracing state of events for this vCPU (bitmask).
State of one CPU core or thread.
Fields
parent_obj: DeviceState
nr_cores: i32
nr_threads: i32
numa_node: i32
thread: *mut QemuThread
thread_id: i32
host_tid: u32
running: bool
has_waiter: bool
halt_cond: *mut QemuCond
thread_kicked: bool
created: bool
stop: bool
stopped: bool
unplug: bool
crash_occurred: bool
exit_request: bool
interrupt_request: u32
singlestep_enabled: i32
icount_budget: i64
icount_extra: i64
jmp_env: [__jmp_buf_tag; 1]
work_mutex: QemuMutex
queued_work_first: *mut qemu_work_item
queued_work_last: *mut qemu_work_item
cpu_ases: *mut CPUAddressSpace
num_ases: i32
as_: *mut AddressSpace
memory: *mut MemoryRegion
env_ptr: *mut c_void
tb_jmp_cache: [*mut TranslationBlock; 4096]
gdb_regs: *mut GDBRegisterState
gdb_num_regs: i32
gdb_num_g_regs: i32
node: CPUState__bindgen_ty_1
breakpoints: CPUState_breakpoints_head
watchpoints: CPUState_watchpoints_head
watchpoint_hit: *mut CPUWatchpoint
watchpoints_disabled: bool
opaque: *mut c_void
mem_io_pc: usize
mem_io_vaddr: u64
kvm_fd: i32
kvm_vcpu_dirty: bool
kvm_state: *mut KVMState
kvm_run: *mut kvm_run
trace_dstate: *mut u64
cpu_index: i32
halted: u32
icount_decr: CPUState__bindgen_ty_2
can_do_io: u32
exception_index: i32
rr_guest_instr_count: u64
panda_guest_pc: u64
reverse_flags: u8
last_gdb_instr: u64
last_bp_hit_instr: u64
temp_rr_bp_instr: u64
throttle_thread_scheduled: bool
tcg_exit_req: u32
hax_vcpu_dirty: bool
hax_vcpu: *mut hax_vcpu_state
pending_tlb_flush: u16
Implementations
impl CPUState
[src]
pub fn mem_read(&mut self, addr: u64, len: usize) -> Vec<u8, Global>
[src]
pub fn mem_write(&mut self, addr: u64, data: &[u8])
[src]
pub fn try_mem_read(&mut self, addr: u64, len: usize) -> Option<Vec<u8, Global>>
[src]
pub fn try_mem_read_phys(
&mut self,
addr: u64,
len: usize
) -> Option<Vec<u8, Global>>
[src]
&mut self,
addr: u64,
len: usize
) -> Option<Vec<u8, Global>>
pub fn mem_read_val<T>(&mut self, addr: u64) -> T
[src]
pub fn mem_read_string(&mut self, addr: u64) -> String
[src]
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for CPUState
[src]
impl !Send for CPUState
[src]
impl !Sync for CPUState
[src]
impl Unpin for CPUState
[src]
impl UnwindSafe for CPUState
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,