Revision 1f6f408c hw/ioapic.c
b/hw/ioapic.c | ||
---|---|---|
104 | 104 |
uint64_t entry; |
105 | 105 |
uint8_t dest; |
106 | 106 |
uint8_t dest_mode; |
107 |
uint8_t polarity; |
|
108 | 107 |
|
109 | 108 |
for (i = 0; i < IOAPIC_NUM_PINS; i++) { |
110 | 109 |
mask = 1 << i; |
... | ... | |
116 | 115 |
dest_mode = (entry >> IOAPIC_LVT_DEST_MODE_SHIFT) & 1; |
117 | 116 |
delivery_mode = |
118 | 117 |
(entry >> IOAPIC_LVT_DELIV_MODE_SHIFT) & IOAPIC_DM_MASK; |
119 |
polarity = (entry >> IOAPIC_LVT_POLARITY_SHIFT) & 1; |
|
120 | 118 |
if (trig_mode == IOAPIC_TRIGGER_EDGE) { |
121 | 119 |
s->irr &= ~mask; |
122 | 120 |
} else { |
... | ... | |
128 | 126 |
vector = entry & IOAPIC_VECTOR_MASK; |
129 | 127 |
} |
130 | 128 |
apic_deliver_irq(dest, dest_mode, delivery_mode, |
131 |
vector, polarity, trig_mode);
|
|
129 |
vector, trig_mode); |
|
132 | 130 |
} |
133 | 131 |
} |
134 | 132 |
} |
Also available in: Unified diff