9 lines
384 B
C++
9 lines
384 B
C++
void ApicErrorHandler::trigger(const InterruptFrame &frame) {
|
|
// Write/read register: Write first, then read
|
|
// Writing the ESR updates its contents and arms the interrupt again
|
|
LocalApic::writeDoubleWord(LocalApic::ESR, 0);
|
|
uint32_t errors = LocalApic::readDoubleWord(LocalApic::ESR);
|
|
|
|
log.error("APIC error on core [%d]: [0x%x]!", LocalApic::getId(), errors);
|
|
}
|