Deleted Added
sdiff udiff text old ( 6066:a9fe0813039f ) new ( 6069:cb5b778785a6 )
full compact
1/*
2 * Copyright (c) 2008 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * Redistribution and use of this software in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *

--- 324 unchanged lines hidden (view full) ---

333}
334
335
336Tick
337X86ISA::Interrupts::recvResponse(PacketPtr pkt)
338{
339 assert(!pkt->isError());
340 assert(pkt->cmd == MemCmd::MessageResp);
341 InterruptCommandRegLow low = regs[APIC_INTERRUPT_COMMAND_LOW];
342 // Record that the ICR is now idle.
343 low.deliveryStatus = 0;
344 regs[APIC_INTERRUPT_COMMAND_LOW] = low;
345 delete pkt->req;
346 delete pkt;
347 DPRINTF(LocalApic, "ICR is now idle.\n");
348 return 0;
349}
350
351
352void

--- 138 unchanged lines hidden (view full) ---

491 message.destMode = low.destMode;
492 message.level = low.level;
493 message.trigger = low.trigger;
494 bool timing = sys->getMemoryMode() == Enums::timing;
495 // Be careful no updates of the delivery status bit get lost.
496 regs[APIC_INTERRUPT_COMMAND_LOW] = low;
497 switch (low.destShorthand) {
498 case 0:
499 intPort->sendMessage(message, timing);
500 newVal = regs[APIC_INTERRUPT_COMMAND_LOW];
501 break;
502 case 1:
503 panic("Self IPIs aren't implemented.\n");
504 break;
505 case 2:
506 panic("Broadcast including self IPIs aren't implemented.\n");
507 break;
508 case 3:
509 panic("Broadcast excluding self IPIs aren't implemented.\n");
510 break;
511 }
512 }
513 break;
514 case APIC_LVT_TIMER:
515 case APIC_LVT_THERMAL_SENSOR:
516 case APIC_LVT_PERFORMANCE_MONITORING_COUNTERS:
517 case APIC_LVT_LINT0:

--- 40 unchanged lines hidden (view full) ---

558X86ISA::Interrupts::Interrupts(Params * p) :
559 BasicPioDevice(p), IntDev(this), latency(p->pio_latency), clock(0),
560 apicTimerEvent(this),
561 pendingSmi(false), smiVector(0),
562 pendingNmi(false), nmiVector(0),
563 pendingExtInt(false), extIntVector(0),
564 pendingInit(false), initVector(0),
565 pendingStartup(false), startupVector(0),
566 startedUp(false), pendingUnmaskableInt(false)
567{
568 pioSize = PageBytes;
569 memset(regs, 0, sizeof(regs));
570 //Set the local apic DFR to the flat model.
571 regs[APIC_DESTINATION_FORMAT] = (uint32_t)(-1);
572 ISRV = 0;
573 IRRV = 0;
574}

--- 98 unchanged lines hidden ---