Additional Inherited Members |
| enum | {
EVENT_INTR = 1 << 0,
EVENT_FIXED = 1 << 0,
EVENT_LOWEST = 1 << 1,
EVENT_SMI = 1 << 2,
EVENT_RRD = 1 << 3,
EVENT_RESET = 1 << 3,
EVENT_NMI = 1 << 4,
EVENT_INIT = 1 << 5,
EVENT_SIPI = 1 << 6,
EVENT_EXTINT = 1 << 7,
EVENT_MASK = 0x0ff,
DEASS_INTR = 1 << 16,
EVENT_DEBUG = 1 << 17,
STATE_BLOCK = 1 << 18,
STATE_WAKEUP = 1 << 19,
EVENT_HOST = 1 << 20
} |
| static bool | receive_static (Device *o, M &msg) |
| DBus< CpuMessage > | executor |
| DBus< CpuEvent > | bus_event |
| DBus< LapicEvent > | bus_lapic |
| DBus< MessageMem > | mem |
| DBus< MessageMemRegion > | memregion |
| unsigned long long | inj_count |
Constructor & Destructor Documentation
Member Function Documentation
| void VirtualCpu::dprintf |
( |
const char * |
format, |
|
|
|
... |
|
) |
| |
|
inlineprivate |
| long long VirtualCpu::get_tsc_off |
( |
CpuMessage & |
msg | ) |
|
|
inlineprivate |
Return current TSC offset.
Works around destroyed value in msg.cpu->tsc_off when we want to change the TSC offset.
| void VirtualCpu::got_event |
( |
unsigned |
value | ) |
|
|
inlineprivate |
We received an asynchronous event.
As code runs in many threads, state updates have to be atomic!
try to claim the SIPI field, if it is empty, we are waiting for a SIPI. If it fails, somebody else was faster and we do not wakeup the client.
| void VirtualCpu::handle_cpu_init |
( |
CpuMessage & |
msg, |
|
|
bool |
reset |
|
) |
| |
|
inlineprivate |
| void VirtualCpu::prioritize_events |
( |
CpuMessage & |
msg | ) |
|
|
inlineprivate |
Prioritize different events.
Returns the events to clear.
Forward MEM requests to the motherboard.
| bool VirtualCpu::receive |
( |
CpuEvent & |
msg | ) |
|
|
inline |
Handle the INTA ourself in the case that there is no LAPIC or it is HW disabled.
Member Data Documentation
| volatile unsigned VirtualCpu::_event |
|
private |
| unsigned long VirtualCpu::_hostop_id |
|
private |
| long long VirtualCpu::_reset_tsc_off |
|
private |
| volatile unsigned VirtualCpu::_sipi |
|
private |
| unsigned char VirtualCpu::debugioin[8192] |
|
private |
| unsigned char VirtualCpu::debugioout[8192] |
|
private |
The documentation for this class was generated from the following file: