Local APIC model. More...
Public Member Functions | |
bool | receive (MessageMem &msg) |
Receive MMIO access. | |
bool | receive (MessageMemRegion &msg) |
Receive MMIO map request. | |
bool | receive (MessageTimeout &msg) |
Timeout for the APIC timer. | |
bool | receive (MessageApic &msg) |
Receive an IPI. | |
bool | receive (LapicEvent &msg) |
Receive INTA cycle or RESET from the CPU. | |
bool | receive (CpuMessage &msg) |
Receive RDMSR and WRMSR messages. | |
bool | receive (MessageLegacy &msg) |
Legacy pins. | |
void | discovery () |
Lapic (Motherboard &mb, VCpu *vcpu, unsigned initial_apic_id, unsigned timer) | |
Public Attributes | |
Motherboard & | _mb |
Local APIC model.
Copyright (C) 2010, Bernhard Kauer <bk@vmmon.org> Economic rights: Technische Universitaet Dresden (Germany)
This file is part of Vancouver.
Vancouver is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
Vancouver is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details. Lapic model.
State: testing Features: MEM, MSR, MSR-base and CPUID, LVT, LINT0/1, EOI, prioritize IRQ, error, RemoteEOI, timer, IPI, lowest prio, reset, x2apic mode, BIOS ACPI tables Missing: focus checking, CR8/TPR setting Difference: no interrupt polarity, lowest prio is round-robin Documentation: Intel SDM Volume 3a Chapter 10 253668-033.
Lapic::Lapic | ( | Motherboard & | mb, | |
VCpu * | vcpu, | |||
unsigned | initial_apic_id, | |||
unsigned | timer | |||
) | [inline] |
void Lapic::discovery | ( | ) | [inline] |
bool Lapic::receive | ( | MessageApic & | msg | ) | [inline] |
Receive an IPI.
bool Lapic::receive | ( | MessageLegacy & | msg | ) | [inline] |
Legacy pins.
bool Lapic::receive | ( | CpuMessage & | msg | ) | [inline] |
Receive RDMSR and WRMSR messages.
bool Lapic::receive | ( | LapicEvent & | msg | ) | [inline] |
Receive INTA cycle or RESET from the CPU.
bool Lapic::receive | ( | MessageMemRegion & | msg | ) | [inline] |
Receive MMIO map request.
We return true without setting msg.ptr and thus nobody else can claim this region.
bool Lapic::receive | ( | MessageTimeout & | msg | ) | [inline] |
Timeout for the APIC timer.
bool Lapic::receive | ( | MessageMem & | msg | ) | [inline] |
Receive MMIO access.