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: