quic/qbox
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
QemuCpu Class Reference
Inheritance diagram for QemuCpu:
Inheritance graph
[legend]
Collaboration diagram for QemuCpu:
Collaboration graph
[legend]

Classes

class  QemuCpuHintTlmExtension
 

Public Member Functions

 QemuCpu (const sc_core::sc_module_name &name, QemuInstance &inst, const std::string &type_name)
 
void end_of_simulation () override
 
bool can_run () override
 
void before_end_of_elaboration () override
 
void halt_cb (const bool &val)
 
void reset_cb (const bool &val)
 
virtual void end_of_elaboration () override
 
virtual void start_of_simulation () override
 
virtual void initiator_customize_tlm_payload (TlmPayload &payload) override
 
virtual void initiator_tidy_tlm_payload (TlmPayload &payload) override
 
virtual sc_core::sc_time initiator_get_local_time () override
 
virtual void initiator_set_local_time (const sc_core::sc_time &t) override
 
virtual void initiator_async_run (qemu::Cpu::AsyncJobFn job) override
 
- Public Member Functions inherited from QemuDevice
void instantiate ()
 
void realize ()
 
 QemuDevice (const sc_core::sc_module_name &name, QemuInstance &inst, const char *qom_type)
 Construct a QEMU device.
 
void set_qom_type (std::string const &qom_type)
 
const charget_qom_type () const
 
qemu::Device get_qemu_dev ()
 
QemuInstanceget_qemu_inst ()
 
void set_sysbus_as_parent_bus (void)
 
- Public Member Functions inherited from QemuDeviceBaseIF
 SCP_LOGGER ()
 

Public Attributes

cci::cci_param< unsigned intp_gdb_port
 
QemuInitiatorSocket socket
 
TargetSignalSocket< boolhalt
 
TargetSignalSocket< boolreset
 

Protected Types

enum  { none , start_reset , hold_reset , finish_reset }
 

Protected Member Functions

void create_quantum_keeper ()
 
void set_coroutine_mode ()
 
void set_signaled ()
 
void watch_external_ev ()
 
void kick_cb ()
 
void deadline_timer_cb ()
 
void wait_for_work ()
 
void rearm_deadline_timer ()
 
void prepare_run_cpu ()
 
void run_cpu_loop ()
 
void sync_with_kernel ()
 
void end_of_loop_cb ()
 
void mainloop_thread_coroutine ()
 

Protected Attributes

gs::runonsysc m_on_sysc
 
std::shared_ptr< qemu::Timerm_deadline_timer
 
bool m_coroutines
 
qemu::Cpu m_cpu
 
gs::async_event m_qemu_kick_ev
 
sc_core::sc_event_or_list m_external_ev
 
sc_core::sc_process_handle m_sc_thread
 
std::atomic< boolm_signaled
 
std::mutex m_signaled_lock
 
std::condition_variable m_signaled_cond
 
std::shared_ptr< gs::tlm_quantumkeeper_extendedm_qk
 
std::atomic< boolm_finished = false
 
std::atomic< boolm_started = false
 
enum QemuCpu:: { ... }  m_resetting = none
 
gs::async_event m_start_reset_done_ev
 
std::mutex m_can_delete
 
QemuCpuHintTlmExtension m_cpu_hint_ext
 
uint64_t m_quantum_ns
 
- Protected Attributes inherited from QemuDevice
QemuInstancem_inst
 
qemu::Device m_dev
 
bool m_instanciated = false
 
bool m_realized = false
 

Additional Inherited Members

- Public Types inherited from QemuInitiatorIface
using TlmPayload = tlm::tlm_generic_payload
 

Member Function Documentation

◆ before_end_of_elaboration()

void QemuCpu::before_end_of_elaboration ( )
inlineoverridevirtual

Reimplemented from QemuDevice.

◆ can_run()

bool QemuCpu::can_run ( )
inlineoverridevirtual

Reimplemented from QemuDeviceBaseIF.

◆ end_of_elaboration()

virtual void QemuCpu::end_of_elaboration ( )
inlineoverridevirtual

Reimplemented from QemuDevice.

◆ initiator_async_run()

virtual void QemuCpu::initiator_async_run ( qemu::Cpu::AsyncJobFn  job)
inlineoverridevirtual

Implements QemuInitiatorIface.

◆ initiator_customize_tlm_payload()

virtual void QemuCpu::initiator_customize_tlm_payload ( TlmPayload &  payload)
inlineoverridevirtual

Implements QemuInitiatorIface.

◆ initiator_get_local_time()

virtual sc_core::sc_time QemuCpu::initiator_get_local_time ( )
inlineoverridevirtual

Implements QemuInitiatorIface.

◆ initiator_set_local_time()

virtual void QemuCpu::initiator_set_local_time ( const sc_core::sc_time &  t)
inlineoverridevirtual

Implements QemuInitiatorIface.

◆ initiator_tidy_tlm_payload()

virtual void QemuCpu::initiator_tidy_tlm_payload ( TlmPayload &  payload)
inlineoverridevirtual

Implements QemuInitiatorIface.


The documentation for this class was generated from the following file: