/xen/xen/include/asm-x86/ |
A D | debugger.h | 43 unsigned int vector, struct cpu_user_regs *regs) in debugger_trap_fatal() argument 45 int rc = __trap_to_gdb(regs, vector); in debugger_trap_fatal() 46 return ((rc == 0) || (vector == TRAP_int3)); in debugger_trap_fatal() 53 unsigned int vector, struct cpu_user_regs *regs) in debugger_trap_entry() argument 62 if ( vector != TRAP_int3 && vector != TRAP_debug ) in debugger_trap_entry() 68 if ( vector != TRAP_debug ) /* domain pause is good enough */ in debugger_trap_entry() 69 current->arch.gdbsx_vcpu_event = vector; in debugger_trap_entry() 80 unsigned int vector, struct cpu_user_regs *regs) in debugger_trap_fatal() argument 88 unsigned int vector, struct cpu_user_regs *regs) in debugger_trap_entry() argument
|
A D | genapic.h | 38 void (*send_IPI_mask)(const cpumask_t *mask, int vector); 39 void (*send_IPI_self)(uint8_t vector); 54 void send_IPI_self_legacy(uint8_t vector); 59 void send_IPI_mask_flat(const cpumask_t *mask, int vector); 74 void send_IPI_mask_phys(const cpumask_t *mask, int vector);
|
A D | irq.h | 32 s16 vector; /* vector itself is only 8 bits, */ member 108 uint8_t vector, void (*handler)(struct cpu_user_regs *)); 110 uint8_t *vector, void (*handler)(struct cpu_user_regs *)); 188 int bind_irq_vector(int irq, int vector, const cpumask_t *); 190 void end_nonmaskable_irq(struct irq_desc *, uint8_t vector);
|
A D | apic.h | 141 static __inline bool_t apic_isr_read(u8 vector) in apic_isr_read() argument 143 return (apic_read(APIC_ISR + ((vector & ~0x1f) >> 1)) >> in apic_isr_read() 144 (vector & 0x1f)) & 1; in apic_isr_read() 192 extern void check_for_unexpected_msi(unsigned int vector);
|
A D | domain.h | 690 static inline void pv_inject_hw_exception(unsigned int vector, int errcode) in pv_inject_hw_exception() argument 693 .vector = vector, in pv_inject_hw_exception() 704 .vector = TRAP_page_fault, in pv_inject_page_fault() 713 static inline void pv_inject_sw_interrupt(unsigned int vector) in pv_inject_sw_interrupt() argument 716 .vector = vector, in pv_inject_sw_interrupt()
|
A D | smp.h | 35 void send_IPI_mask(const cpumask_t *, int vector); 36 void send_IPI_self(int vector);
|
/xen/xen/arch/x86/ |
A D | smp.c | 29 static unsigned int prepare_ICR(unsigned int shortcut, int vector) in prepare_ICR() argument 31 return APIC_DM_FIXED | shortcut | vector; in prepare_ICR() 49 static void send_IPI_shortcut(unsigned int shortcut, int vector, in send_IPI_shortcut() argument 57 cfg = prepare_ICR(shortcut, vector) | dest; in send_IPI_shortcut() 67 void send_IPI_mask(const cpumask_t *mask, int vector) in send_IPI_mask() argument 116 void send_IPI_self(int vector) in send_IPI_self() argument 118 alternative_vcall(genapic.send_IPI_self, vector); in send_IPI_self() 163 void send_IPI_self_legacy(uint8_t vector) in send_IPI_self_legacy() argument 195 cfg = prepare_ICR(0, vector) | APIC_DEST_LOGICAL; in send_IPI_mask_flat() 205 void send_IPI_mask_phys(const cpumask_t *mask, int vector) in send_IPI_mask_phys() argument [all …]
|
A D | irq.c | 159 if ( (desc->arch.vector == vector) && in _bind_irq_vector() 167 desc->arch.vector = vector; in _bind_irq_vector() 198 unsigned int vector = desc->arch.vector; in _clear_irq_vector() local 373 vector = desc->arch.vector; in irq_to_vector() 384 vector = desc->arch.vector; in irq_to_vector() 421 for ( vector = 0; vector < X86_NR_VECTORS; ++vector ) in init_irq_data() 615 desc->arch.vector = vector; in _assign_irq_vector() 674 for ( vector = 0; vector < X86_NR_VECTORS; ++vector ) in setup_vector_irq() 831 if ( vector == desc->arch.vector && in irq_complete_move() 1090 peoi[sp].vector = vector; in end_nonmaskable_irq() [all …]
|
A D | io_apic.c | 290 vector = __ioapic_read_entry(apic, pin, TRUE).vector; in __io_apic_eoi() 481 unsigned int pin, vector = desc->arch.vector; in __eoi_IO_APIC_irq() local 1040 entry.vector = vector; in setup_IO_APIC_irqs() 1081 entry.vector = vector; in setup_ExtINT_IRQ0_pin() 1734 if ( vector && i != vector ) in end_level_ioapic_irq_new() 2205 int vector; in io_apic_set_pci_routing() local 2236 entry.vector = vector; in io_apic_set_pci_routing() 2385 rte.vector = desc->arch.vector; in ioapic_guest_write() 2396 int vector = desc->arch.vector; in ioapic_guest_write() local 2408 desc->arch.vector = vector; in ioapic_guest_write() [all …]
|
/xen/xen/arch/x86/pv/ |
A D | traps.c | 47 const uint8_t vector = event->vector; in pv_inject_event() local 51 ASSERT(vector == event->vector); /* Confirm no truncation. */ in pv_inject_event() 54 ASSERT(vector < 32); in pv_inject_event() 55 use_error_code = TRAP_HAVE_EC & (1u << vector); in pv_inject_event() 68 ti = &curr->arch.pv.trap_ctxt[vector]; in pv_inject_event() 75 vector == TRAP_page_fault ) in pv_inject_event() 88 trace_pv_trap(vector, regs->rip, use_error_code, error_code); in pv_inject_event() 103 trapstr(vector), vector, error_code); in pv_inject_event() 105 if ( vector == TRAP_page_fault ) in pv_inject_event()
|
/xen/xen/arch/x86/hvm/svm/ |
A D | intr.c | 51 event.vector = TRAP_nmi; in svm_inject_nmi() 64 static void svm_inject_extint(struct vcpu *v, int vector) in svm_inject_extint() argument 72 event.vector = vector; in svm_inject_extint() 101 HVMTRACE_3D(INTR_WINDOW, intack.vector, intack.source, in svm_enable_intr_window() 102 vmcb->event_inj.v ? vmcb->event_inj.vector : -1); in svm_enable_intr_window() 126 intr.fields.vector = 0; in svm_enable_intr_window() 127 intr.fields.prio = intack.vector >> 4; in svm_enable_intr_window() 215 HVMTRACE_2D(INJ_VIRQ, intack.vector, /*fake=*/ 0); in svm_intr_assist() 216 svm_inject_extint(v, intack.vector); in svm_intr_assist()
|
/xen/xen/arch/x86/hvm/viridian/ |
A D | synic.c | 148 uint8_t vector; in viridian_synic_wrmsr() local 155 if ( new.vector < 0x10 ) in viridian_synic_wrmsr() 162 vector = vs->vector; in viridian_synic_wrmsr() 165 vector = new.vector; in viridian_synic_wrmsr() 166 vv->vector_to_sintx[vector] = sintx; in viridian_synic_wrmsr() 169 vector); in viridian_synic_wrmsr() 373 unsigned int sintx = vv->vector_to_sintx[vector]; in viridian_synic_is_auto_eoi_sint() 431 uint8_t vector; in viridian_synic_load_vcpu_ctxt() local 435 vector = vv->sint[i].vector; in viridian_synic_load_vcpu_ctxt() 436 if ( vector < 0x10 ) in viridian_synic_load_vcpu_ctxt() [all …]
|
/xen/xen/arch/x86/hvm/vmx/ |
A D | realmode.c | 26 unsigned int vector, in realmode_deliver_exception() argument 41 last_byte = (vector * 4) + 3; in realmode_deliver_exception() 43 hvm_copy_from_guest_phys(&cs_eip, idtr->base + vector * 4, 4) != in realmode_deliver_exception() 50 vector = TRAP_gp_fault; in realmode_deliver_exception() 55 switch ( vector ) in realmode_deliver_exception() 61 vector = TRAP_double_fault; in realmode_deliver_exception() 64 vector = TRAP_gp_fault; in realmode_deliver_exception() 124 ((hvmemul_ctxt->ctxt.event.vector == TRAP_debug) || in vmx_realmode_emulate_one() 125 (hvmemul_ctxt->ctxt.event.vector == TRAP_int3)) ) in vmx_realmode_emulate_one() 132 hvmemul_ctxt->ctxt.event.vector); in vmx_realmode_emulate_one() [all …]
|
A D | intr.c | 82 HVMTRACE_3D(INTR_WINDOW, intack.vector, intack.source, in vmx_enable_intr_window() 199 vmx_inject_extint(intack.vector, intack.source); in nvmx_intr_intercept() 219 vmx_inject_extint(intack.vector, intack.source); in nvmx_intr_intercept() 305 tpr_threshold = intack.vector >> 4; in vmx_intr_assist() 357 if ( unlikely(intack.vector < pt_vector) ) in vmx_intr_assist() 365 current, intack.source, intack.vector, pt_vector); in vmx_intr_assist() 388 ASSERT(intack.vector >= pt_vector); in vmx_intr_assist() 389 vmx_set_eoi_exit_bitmap(v, intack.vector); in vmx_intr_assist() 396 intack.vector; in vmx_intr_assist() 405 HVMTRACE_2D(INJ_VIRQ, intack.vector, /*fake=*/ 0); in vmx_intr_assist() [all …]
|
/xen/xen/drivers/passthrough/amd/ |
A D | iommu_intr.c | 36 unsigned int vector:8; member 52 unsigned int vector:8; member 221 .vector = vector, in update_intremap_entry() 242 .vector = vector, in update_intremap_entry() 252 return rte->vector | (rte->delivery_mode << 8); in get_rte_index() 257 rte->vector = (u8)offset; in set_rte_index() 275 uint8_t delivery_mode, vector, dest_mode; in update_intremap_entry_from_ioapic() local 285 vector = rte->vector; in update_intremap_entry_from_ioapic() 330 vector = entry.ptr128->full.vector; in update_intremap_entry_from_ioapic() 332 vector = entry.ptr32->flds.vector; in update_intremap_entry_from_ioapic() [all …]
|
/xen/xen/include/asm-x86/hvm/ |
A D | hvm.h | 47 uint8_t vector; member 55 #define hvm_intack_vector(vec) hvm_intack(vector, vec) 187 struct vcpu *v, unsigned int vector, int errcode); 197 void (*deliver_posted_intr)(struct vcpu *v, u8 vector); 200 void (*handle_eoi)(uint8_t vector, int isr); 263 struct domain *d, int vector, 478 unsigned int vector, unsigned int type, in hvm_inject_exception() argument 482 .vector = vector, in hvm_inject_exception() 494 .vector = vector, in hvm_inject_hw_exception() 505 .vector = TRAP_page_fault, in hvm_inject_page_fault() [all …]
|
/xen/xen/arch/x86/hvm/ |
A D | irq.c | 53 int vector; in hvm_ioapic_assert() local 64 vector = vioapic_get_vector(d, gsi); in hvm_ioapic_assert() 67 return vector; in hvm_ioapic_assert() 221 int vector = -1; in hvm_isa_irq_assert() local 232 vector = get_vector(d, gsi); in hvm_isa_irq_assert() 236 return vector; in hvm_isa_irq_assert() 394 if ( !vector ) in hvm_inject_msi() 522 int vector; in hvm_vcpu_has_pending_irq() local 547 if ( vector != -1 ) in hvm_vcpu_has_pending_irq() 556 int vector; in hvm_vcpu_ack_pending_irq() local [all …]
|
A D | vioapic.c | 381 uint8_t vector, in ioapic_inj_irq() argument 386 vector, trig_mode, delivery_mode); in ioapic_inj_irq() 391 vlapic_set_irq(target, vector, trig_mode); in ioapic_inj_irq() 404 uint8_t vector = vioapic->redirtbl[pin].fields.vector; in vioapic_deliver() local 416 dest, dest_mode, delivery_mode, vector, trig_mode); in vioapic_deliver() 440 vector, dest_LowestPrio); in vioapic_deliver() 452 ioapic_inj_irq(vioapic, vcpu_vlapic(v), vector, in vioapic_deliver() 461 ioapic_inj_irq(vioapic, vcpu_vlapic(v), vector, in vioapic_deliver() 516 void vioapic_update_EOI(struct domain *d, u8 vector) in vioapic_update_EOI() argument 534 if ( ent->fields.vector != vector ) in vioapic_update_EOI() [all …]
|
A D | vlapic.c | 342 uint8_t vector = (uint8_t)icr_low; in vlapic_accept_irq() local 349 vlapic_set_irq(vlapic, vector, 0); in vlapic_accept_irq() 427 int vector; in vlapic_EOI_set() local 430 vector = vlapic_find_highest_isr(vlapic); in vlapic_EOI_set() 433 if ( vector == -1 ) in vlapic_EOI_set() 451 vlapic_handle_EOI(vlapic, vector); in vlapic_EOI_set() 468 vioapic_update_EOI(d, vector); in vlapic_handle_EOI() 470 viridian_synic_ack_sint(v, vector); in vlapic_handle_EOI() 472 hvm_dpci_msi_eoi(d, vector); in vlapic_handle_EOI() 1368 if ( isr == -1 && vector > 0x10 ) in vlapic_ack_pending_irq() [all …]
|
A D | vmsi.c | 49 uint8_t vector, in vmsi_inj_irq() argument 54 vector, trig_mode, delivery_mode); in vmsi_inj_irq() 60 vlapic_set_irq(target, vector, trig_mode); in vmsi_inj_irq() 68 struct domain *d, int vector, in vmsi_deliver() argument 81 vmsi_inj_irq(target, vector, trig_mode, delivery_mode); in vmsi_deliver() 85 vector); in vmsi_deliver() 92 vmsi_inj_irq(vcpu_vlapic(v), vector, in vmsi_deliver() 109 int vector = pirq_dpci->gmsi.gvec; in vmsi_deliver_pirq() local 687 uint8_t vector = MASK_EXTR(data, MSI_DATA_VECTOR_MASK); in vpci_msi_update() local 692 .u.msi.gvec = (vector & ~vector_mask) | in vpci_msi_update() [all …]
|
/xen/docs/misc/ |
A D | vtd-pi.txt | 11 Virtual Vector: the guest vector of the interrupt 17 per vector, for up to 256 vectors). 116 The virtual-vector specifies the vector of the interrupt to be recorded in 187 u8 vector; 204 u8 vector; 220 global notification vector for all vCPUs in the system. This vector is stored in 224 This existing global vector is a _special_ vector to CPU, CPU handle it in a 232 how to use this new global vector. 237 Virtual Vector: the guest vector of the interrupt 244 'Virtual Vector' tells the guest vector of the interrupt. [all …]
|
/xen/xen/include/asm-x86/pv/ |
A D | traps.h | 37 uint8_t vector) in pv_trap_callback_registered() argument 39 return v->arch.pv.trap_ctxt[vector].address; in pv_trap_callback_registered() 55 uint8_t vector) in pv_trap_callback_registered() argument
|
/xen/xen/arch/arm/arm32/ |
A D | entry.S | 158 .macro vector trap, guest_iflags=n, hyp_iflags=0 macro 311 vector reset 322 vector undefined_instruction, hyp_iflags=IFLAGS_AIF 326 vector hypervisor_call 337 vector prefetch_abort, hyp_iflags=IFLAGS_AIF 347 vector data_abort 351 vector guest_sync, guest_iflags=ai 356 vector irq, guest_iflags=a, hyp_iflags=IFLAGS_A_F 364 vector fiq
|
/xen/xen/arch/x86/genapic/ |
A D | x2apic.c | 90 static void send_IPI_self_x2apic(uint8_t vector) in send_IPI_self_x2apic() argument 92 apic_wrmsr(APIC_SELF_IPI, vector); in send_IPI_self_x2apic() 95 static void send_IPI_mask_x2apic_phys(const cpumask_t *cpumask, int vector) in send_IPI_mask_x2apic_phys() argument 121 APIC_DEST_PHYSICAL | vector; in send_IPI_mask_x2apic_phys() 128 static void send_IPI_mask_x2apic_cluster(const cpumask_t *cpumask, int vector) in send_IPI_mask_x2apic_cluster() argument 156 APIC_DEST_LOGICAL | vector; in send_IPI_mask_x2apic_cluster()
|
/xen/xen/include/asm-x86/guest/ |
A D | xen-hcall.h | 173 unsigned int cpu, unsigned int vector) in xen_hypercall_set_evtchn_upcall_vector() argument 177 .vector = vector, in xen_hypercall_set_evtchn_upcall_vector()
|