Lines Matching refs:fields
118 e->fields.dest_id,
119 kvm_lapic_irq_dest_mode(!!e->fields.dest_mode)))
122 new_val = kvm_apic_pending_eoi(vcpu, e->fields.vector);
130 dest_map->vectors[vcpu->vcpu_id] = e->fields.vector;
192 entry->fields.dest_id,
193 entry->fields.dest_mode) ||
194 kvm_apic_pending_eoi(vcpu, entry->fields.vector))
201 rtc_irq_eoi(ioapic, vcpu, entry->fields.vector);
215 edge = (entry.fields.trig_mode == IOAPIC_EDGE_TRIG);
294 if (e->fields.trig_mode == IOAPIC_LEVEL_TRIG ||
297 u16 dm = kvm_lapic_irq_dest_mode(!!e->fields.dest_mode);
300 e->fields.dest_id, dm) ||
301 kvm_apic_pending_eoi(vcpu, e->fields.vector))
302 __set_bit(e->fields.vector,
343 mask_before = e->fields.mask;
344 /* Preserve read-only fields */
345 old_remote_irr = e->fields.remote_irr;
346 old_delivery_status = e->fields.delivery_status;
347 old_dest_id = e->fields.dest_id;
348 old_dest_mode = e->fields.dest_mode;
356 e->fields.remote_irr = old_remote_irr;
357 e->fields.delivery_status = old_delivery_status;
365 if (e->fields.trig_mode == IOAPIC_EDGE_TRIG)
366 e->fields.remote_irr = 0;
368 mask_after = e->fields.mask;
371 if (e->fields.trig_mode == IOAPIC_LEVEL_TRIG &&
372 ioapic->irr & (1 << index) && !e->fields.mask && !e->fields.remote_irr) {
404 if (e->fields.delivery_mode == APIC_DM_FIXED) {
407 irq.vector = e->fields.vector;
408 irq.delivery_mode = e->fields.delivery_mode << 8;
410 kvm_lapic_irq_dest_mode(!!e->fields.dest_mode);
412 irq.trig_mode = e->fields.trig_mode;
414 irq.dest_id = e->fields.dest_id;
419 if (old_dest_mode != e->fields.dest_mode ||
420 old_dest_id != e->fields.dest_id) {
429 !!e->fields.dest_mode);
448 if (entry->fields.mask ||
449 (entry->fields.trig_mode == IOAPIC_LEVEL_TRIG &&
450 entry->fields.remote_irr))
453 irqe.dest_id = entry->fields.dest_id;
454 irqe.vector = entry->fields.vector;
455 irqe.dest_mode = kvm_lapic_irq_dest_mode(!!entry->fields.dest_mode);
456 irqe.trig_mode = entry->fields.trig_mode;
457 irqe.delivery_mode = entry->fields.delivery_mode << 8;
480 entry->fields.remote_irr = 1;
521 if (ent->fields.trig_mode != IOAPIC_LEVEL_TRIG)
524 if (ioapic->irr & (1 << i) && !ent->fields.remote_irr)
555 ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG);
556 ent->fields.remote_irr = 0;
557 if (!ent->fields.mask && (ioapic->irr & (1 << pin))) {
589 if (ent->fields.vector != vector)
699 ioapic->redirtbl[i].fields.mask = 1;