[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [Qemu-devel] [PATCH RFC V3 05/12] piix_pci: Introduces Xen specific call for irq.
On Fri, 17 Sep 2010, Blue Swirl wrote: > On Fri, Sep 17, 2010 at 11:15 AM, <anthony.perard@xxxxxxxxxx> wrote: > > From: Anthony PERARD <anthony.perard@xxxxxxxxxx> > > > > This patch introduces Xen specific call in piix_pci. > > > > The specific part for Xen is in write_config, set_irq and get_pirq. > > > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > > --- > > Âhw/piix_pci.c |  10 +++++++++- > > Âhw/xen.h   Â|  Â6 ++++++ > > Âxen-all.c   |  29 +++++++++++++++++++++++++++++ > > Âxen-stub.c  Â|  13 +++++++++++++ > > Â4 files changed, 57 insertions(+), 1 deletions(-) [...] > > diff --git a/xen-all.c b/xen-all.c > > index f505563..948e439 100644 > > --- a/xen-all.c > > +++ b/xen-all.c > > @@ -8,9 +8,38 @@ > > > > Â#include "config.h" > > > > +#include "hw/pci.h" > > Â#include "hw/xen_common.h" > > Â#include "hw/xen_backend.h" > > > > +/* Xen specific function for piix pci */ > > + > > +int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num) > > +{ > > +  Âreturn irq_num + ((pci_dev->devfn >> 3) << 2); > > +} > > + > > +void xen_piix3_set_irq(void *opaque, int irq_num, int level) > > +{ > > +  Âxc_hvm_set_pci_intx_level(xen_xc, xen_domid, 0, 0, irq_num >> 2, > > +               Âirq_num & 3, level); > > +} > > + > > +void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int > > len) > > address should be target_phys_addr_t. I use the same type as for PCIConfigWriteFunc, and address is uint32_t. But I can change if it's necessary. > > +{ > > +  Âint i; > > + > > +  Â/* Scan for updates to PCI link routes (0x60-0x63). */ > > +  Âfor (i = 0; i < len; i++) { > > +    Âuint8_t v = (val >> (8*i)) & 0xff; > > Please add spaces around '*'. > > > +    Âif (v & 0x80) > > braces > > > +      Âv = 0; > > +    Âv &= 0xf; > > +    Âif (((address+i) >= 0x60) && ((address+i) <= 0x63)) > > Braces and spaces around '+'. > > > +      Âxc_hvm_set_pci_link_route(xen_xc, xen_domid, address + i - > > 0x60, v); > > +  Â} > > +} > > + > > Â/* Initialise Xen */ > > > > Âint xen_init(int smp_cpus) > > diff --git a/xen-stub.c b/xen-stub.c > > index 0fa9c51..07e64bc 100644 > > --- a/xen-stub.c > > +++ b/xen-stub.c > > @@ -11,6 +11,19 @@ > > Â#include "qemu-common.h" > > Â#include "hw/xen.h" > > > > +int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num) > > +{ > > +  Âreturn -1; > > +} > > + > > +void xen_piix3_set_irq(void *opaque, int irq_num, int level) > > +{ > > +} > > + > > +void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int > > len) > > Also here the address should be target_phys_addr_t. -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |