1/* 2 * Copyright (c) 2008 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 132 unchanged lines hidden (view full) --- 141 DPRINTF(I82094AA, "Received interrupt %d.\n", line); 142 assert(line < TableSize); 143 RedirTableEntry entry = redirTable[line]; 144 if (entry.mask) { 145 DPRINTF(I82094AA, "Entry was masked.\n"); 146 return; 147 } else { 148 if (DTRACE(I82094AA)) { |
149 if (DeliveryMode::isReserved(entry.deliveryMode)) { |
150 fatal("Tried to use reserved delivery mode " 151 "for IO APIC entry %d.\n", line); |
152 } else { 153 DPRINTF(I82094AA, "Delivery mode is: %s.\n", 154 DeliveryMode::names[entry.deliveryMode]); |
155 } 156 DPRINTF(I82094AA, "Vector is %#x.\n", entry.vector); 157 } 158 159 TriggerIntMessage message; 160 message.destination = entry.dest; 161 message.vector = entry.vector; 162 message.deliveryMode = entry.deliveryMode; 163 message.destMode = entry.destMode; |
164 message.level = entry.polarity; 165 message.trigger = entry.trigger; |
166 167 if (entry.destMode == 0) { 168 DPRINTF(I82094AA, 169 "Sending interrupt to APIC ID %d.\n", entry.dest); 170 PacketPtr pkt = buildIntRequest(entry.dest, message); 171 if (sys->getMemoryMode() == Enums::timing) 172 intPort->sendMessageTiming(pkt, latency); 173 else if (sys->getMemoryMode() == Enums::atomic) --- 39 unchanged lines hidden --- |