[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Add a new file xen/include/xen/hvm/irq.h to share common definitions.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1224511901 -3600 # Node ID d8a156bdef14de7376dac61dd884fd1bd55e0c9a # Parent 314df03b7d61773dc65c076e049960fa0e39ca07 Add a new file xen/include/xen/hvm/irq.h to share common definitions. Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx> Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx> --- xen/include/asm-x86/hvm/irq.h | 72 ------------------------------ xen/include/xen/hvm/irq.h | 98 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 71 deletions(-) diff -r 314df03b7d61 -r d8a156bdef14 xen/include/asm-x86/hvm/irq.h --- a/xen/include/asm-x86/hvm/irq.h Mon Oct 20 15:11:19 2008 +0100 +++ b/xen/include/asm-x86/hvm/irq.h Mon Oct 20 15:11:41 2008 +0100 @@ -22,62 +22,11 @@ #ifndef __ASM_X86_HVM_IRQ_H__ #define __ASM_X86_HVM_IRQ_H__ -#include <xen/types.h> -#include <xen/spinlock.h> -#include <asm/irq.h> #include <asm/pirq.h> +#include <xen/hvm/irq.h> #include <asm/hvm/hvm.h> #include <asm/hvm/vpic.h> #include <asm/hvm/vioapic.h> -#include <public/hvm/save.h> - -struct dev_intx_gsi_link { - struct list_head list; - uint8_t device; - uint8_t intx; - uint8_t gsi; - uint8_t link; -}; - -#define _HVM_IRQ_DPCI_MSI 0x1 - -struct hvm_gmsi_info { - uint32_t gvec; - uint32_t gflags; -}; - -struct hvm_mirq_dpci_mapping { - uint32_t flags; - int pending; - struct list_head digl_list; - struct domain *dom; - struct hvm_gmsi_info gmsi; -}; - -struct hvm_girq_dpci_mapping { - uint8_t valid; - uint8_t device; - uint8_t intx; - uint8_t machine_gsi; -}; - -#define NR_ISAIRQS 16 -#define NR_LINK 4 -/* Protected by domain's event_lock */ -struct hvm_irq_dpci { - /* Machine IRQ to guest device/intx mapping. */ - DECLARE_BITMAP(mapping, NR_PIRQS); - struct hvm_mirq_dpci_mapping mirq[NR_IRQS]; - /* Guest IRQ to guest device/intx mapping. */ - struct hvm_girq_dpci_mapping girq[NR_IRQS]; - uint8_t msi_gvec_pirq[NR_VECTORS]; - DECLARE_BITMAP(dirq_mask, NR_IRQS); - /* Record of mapped ISA IRQs */ - DECLARE_BITMAP(isairq_map, NR_ISAIRQS); - /* Record of mapped Links */ - uint8_t link_cnt[NR_LINK]; - struct timer hvm_timer[NR_IRQS]; -}; struct hvm_irq { /* @@ -149,27 +98,8 @@ struct hvm_irq { #define hvm_isa_irq_to_gsi(isa_irq) ((isa_irq) ? : 2) -/* Modify state of a PCI INTx wire. */ -void hvm_pci_intx_assert( - struct domain *d, unsigned int device, unsigned int intx); -void hvm_pci_intx_deassert( - struct domain *d, unsigned int device, unsigned int intx); - -/* Modify state of an ISA device's IRQ wire. */ -void hvm_isa_irq_assert( - struct domain *d, unsigned int isa_irq); -void hvm_isa_irq_deassert( - struct domain *d, unsigned int isa_irq); - -void hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq); - -void hvm_maybe_deassert_evtchn_irq(void); -void hvm_assert_evtchn_irq(struct vcpu *v); -void hvm_set_callback_via(struct domain *d, uint64_t via); - /* Check/Acknowledge next pending interrupt. */ struct hvm_intack hvm_vcpu_has_pending_irq(struct vcpu *v); struct hvm_intack hvm_vcpu_ack_pending_irq(struct vcpu *v, struct hvm_intack intack); - #endif /* __ASM_X86_HVM_IRQ_H__ */ diff -r 314df03b7d61 -r d8a156bdef14 xen/include/xen/hvm/irq.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xen/include/xen/hvm/irq.h Mon Oct 20 15:11:41 2008 +0100 @@ -0,0 +1,98 @@ +/****************************************************************************** + * irq.h + * + * Interrupt distribution and delivery logic. + * + * Copyright (c) 2006, K A Fraser, XenSource Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + */ + +#ifndef __XEN_HVM_IRQ_H__ +#define __XEN_HVM_IRQ_H__ + +#include <xen/types.h> +#include <xen/spinlock.h> +#include <asm/irq.h> +#include <public/hvm/save.h> + +struct dev_intx_gsi_link { + struct list_head list; + uint8_t device; + uint8_t intx; + uint8_t gsi; + uint8_t link; +}; + +#define _HVM_IRQ_DPCI_MSI 0x1 + +struct hvm_gmsi_info { + uint32_t gvec; + uint32_t gflags; +}; + +struct hvm_mirq_dpci_mapping { + uint32_t flags; + int pending; + struct list_head digl_list; + struct domain *dom; + struct hvm_gmsi_info gmsi; +}; + +struct hvm_girq_dpci_mapping { + uint8_t valid; + uint8_t device; + uint8_t intx; + uint8_t machine_gsi; +}; + +#define NR_ISAIRQS 16 +#define NR_LINK 4 + +/* Protected by domain's event_lock */ +struct hvm_irq_dpci { + /* Machine IRQ to guest device/intx mapping. */ + DECLARE_BITMAP(mapping, NR_PIRQS); + struct hvm_mirq_dpci_mapping mirq[NR_IRQS]; + /* Guest IRQ to guest device/intx mapping. */ + struct hvm_girq_dpci_mapping girq[NR_IRQS]; + uint8_t msi_gvec_pirq[NR_VECTORS]; + DECLARE_BITMAP(dirq_mask, NR_IRQS); + /* Record of mapped ISA IRQs */ + DECLARE_BITMAP(isairq_map, NR_ISAIRQS); + /* Record of mapped Links */ + uint8_t link_cnt[NR_LINK]; + struct timer hvm_timer[NR_IRQS]; +}; + +/* Modify state of a PCI INTx wire. */ +void hvm_pci_intx_assert( + struct domain *d, unsigned int device, unsigned int intx); +void hvm_pci_intx_deassert( + struct domain *d, unsigned int device, unsigned int intx); + +/* Modify state of an ISA device's IRQ wire. */ +void hvm_isa_irq_assert( + struct domain *d, unsigned int isa_irq); +void hvm_isa_irq_deassert( + struct domain *d, unsigned int isa_irq); + +void hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq); + +void hvm_maybe_deassert_evtchn_irq(void); +void hvm_assert_evtchn_irq(struct vcpu *v); +void hvm_set_callback_via(struct domain *d, uint64_t via); + + +#endif /* __XEN_HVM_IRQ_H__ */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |