mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
xen-2015-09-10
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJV8bU4AAoJEIlPj0hw4a6QIuUP/2zKkoU+KAO1/V5f2WBTwzZc 8X/t+yGMRaQS9ibWldg/kLJ+uqHt1O0XUDyoLFK03jfBd3bJDpGuVAKe39XQmNov y0f+ytGDtLCRglBw2jJT1tu29y3GbCXYxLKLj9vHEoCt4OEdh5xQlwK5ZkzT+SOF Qxnx+5rWMb3xnzxlfg354IJ0AGq1qZemkdhqwUJ66/mFKGRxjavn1cCqcb93tbMU UYKdEkoATRPRrTIhLepUnb3x3fMtlKgZJdqpVDQ3+mwXLGa2C31qJe1h/ac8HVCj 1Rqj8h4va23LntOLS3AIYQcfDjDj1AQbfVKhpZzkYce3kPkXmJ+JwJ6CMQch0Bgw bD6q8/5sJ30Weyi0Yp+ZjVWH2LVXYguf1csPw510c+ZJIsYTDv+AxF63hVmmdp8G 8B5YHhVMKkUtgrammdardjFBhl2XF+zn072RMh6KBAruI7YBAxo0hbRjoy2EWx0h Z93VgcBZ6n6iYNlxpQ8kNxbdnJXo4mgHMBTTe9aOkfXArvllrfJZIWsi5aScrqbb aP5RbFCoRWJVA2qOWywJL8W+rLtTK9244yuqwbhaxcBVw8/fH8VhJD2XxS7yozxS LZwoYO7pjLpqwfnnqtnXOVjWD7aVlEGKWQSe7EV9wIDPrSU/RpBhP09kIu1yCqgM Qki6v4d94v3S5Ounwl4n =7+ii -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/sstabellini/tags/xen-2015-09-10-tag' into staging xen-2015-09-10 # gpg: Signature made Thu 10 Sep 2015 17:52:08 BST using RSA key ID 70E1AE90 # gpg: Good signature from "Stefano Stabellini <stefano.stabellini@eu.citrix.com>" * remotes/sstabellini/tags/xen-2015-09-10-tag: (29 commits) xen/pt: Don't slurp wholesale the PCI configuration registers xen/pt: Check for return values for xen_host_pci_[get|set] in init xen/pt: Move bulk of xen_pt_unregister_device in its own routine. xen/pt: Make xen_pt_unregister_device idempotent xen/pt: Log xen_host_pci_get/set errors in MSI code. xen/pt: Log xen_host_pci_get in two init functions xen/pt: Remove XenPTReg->data field. xen/pt: Check if reg->init function sets the 'data' past the reg->size xen/pt: Sync up the dev.config and data values. xen/pt: Use xen_host_pci_get_[byte|word] instead of dev.config xen/pt: Use XEN_PT_LOG properly to guard against compiler warnings. xen/pt/msi: Add the register value when printing logging and error messages xen: use errno instead of rc for xc_domain_add_to_physmap xen/pt: xen_host_pci_config_read returns -errno, not -1 on failure xen/pt: Make xen_pt_msi_set_enable static xen/pt: Update comments with proper function name. xen/HVM: atomically access pointers in bufioreq handling xen-hvm: When using xc_domain_add_to_physmap also include errno when reporting xen, gfx passthrough: add opregion mapping xen, gfx passthrough: register host bridge specific to passthrough ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
7b9c09f7d4
23 changed files with 1180 additions and 231 deletions
|
@ -137,6 +137,7 @@ struct MachineState {
|
|||
bool mem_merge;
|
||||
bool usb;
|
||||
bool usb_disabled;
|
||||
bool igd_gfx_passthru;
|
||||
char *firmware;
|
||||
bool iommu;
|
||||
bool suppress_vmdesc;
|
||||
|
|
|
@ -220,7 +220,13 @@ extern int no_hpet;
|
|||
struct PCII440FXState;
|
||||
typedef struct PCII440FXState PCII440FXState;
|
||||
|
||||
PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix_devfn,
|
||||
#define TYPE_I440FX_PCI_HOST_BRIDGE "i440FX-pcihost"
|
||||
#define TYPE_I440FX_PCI_DEVICE "i440FX"
|
||||
|
||||
#define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX"
|
||||
|
||||
PCIBus *i440fx_init(const char *host_type, const char *pci_type,
|
||||
PCII440FXState **pi440fx_state, int *piix_devfn,
|
||||
ISABus **isa_bus, qemu_irq *pic,
|
||||
MemoryRegion *address_space_mem,
|
||||
MemoryRegion *address_space_io,
|
||||
|
@ -721,4 +727,5 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
|
|||
(m)->compat_props = props; \
|
||||
} while (0)
|
||||
|
||||
extern void igd_passthrough_isa_bridge_create(PCIBus *bus, uint16_t gpu_dev_id);
|
||||
#endif
|
||||
|
|
27
include/hw/pci/pci-assign.h
Normal file
27
include/hw/pci/pci-assign.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2. See
|
||||
* the COPYING file in the top-level directory.
|
||||
*
|
||||
* Just split from hw/i386/kvm/pci-assign.c.
|
||||
*/
|
||||
#ifndef PCI_ASSIGN_H
|
||||
#define PCI_ASSIGN_H
|
||||
|
||||
#include "hw/pci/pci.h"
|
||||
|
||||
//#define DEVICE_ASSIGNMENT_DEBUG
|
||||
|
||||
#ifdef DEVICE_ASSIGNMENT_DEBUG
|
||||
#define DEBUG(fmt, ...) \
|
||||
do { \
|
||||
fprintf(stderr, "%s: " fmt, __func__ , __VA_ARGS__); \
|
||||
} while (0)
|
||||
#else
|
||||
#define DEBUG(fmt, ...)
|
||||
#endif
|
||||
|
||||
void *pci_assign_dev_load_option_rom(PCIDevice *dev, struct Object *owner,
|
||||
int *size, unsigned int domain,
|
||||
unsigned int bus, unsigned int slot,
|
||||
unsigned int function);
|
||||
#endif /* PCI_ASSIGN_H */
|
|
@ -186,6 +186,15 @@ static inline int xen_get_vmport_regs_pfn(XenXC xc, domid_t dom,
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Xen before 4.6 */
|
||||
#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 460
|
||||
|
||||
#ifndef HVM_IOREQSRV_BUFIOREQ_ATOMIC
|
||||
#define HVM_IOREQSRV_BUFIOREQ_ATOMIC 2
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Xen before 4.5 */
|
||||
#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 450
|
||||
|
||||
|
@ -370,7 +379,8 @@ static inline void xen_unmap_pcidev(XenXC xc, domid_t dom,
|
|||
static inline int xen_create_ioreq_server(XenXC xc, domid_t dom,
|
||||
ioservid_t *ioservid)
|
||||
{
|
||||
int rc = xc_hvm_create_ioreq_server(xc, dom, 1, ioservid);
|
||||
int rc = xc_hvm_create_ioreq_server(xc, dom, HVM_IOREQSRV_BUFIOREQ_ATOMIC,
|
||||
ioservid);
|
||||
|
||||
if (rc == 0) {
|
||||
trace_xen_ioreq_server_create(*ioservid);
|
||||
|
@ -407,4 +417,26 @@ static inline int xen_set_ioreq_server_state(XenXC xc, domid_t dom,
|
|||
|
||||
#endif
|
||||
|
||||
#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 460
|
||||
static inline int xen_xc_domain_add_to_physmap(XenXC xch, uint32_t domid,
|
||||
unsigned int space,
|
||||
unsigned long idx,
|
||||
xen_pfn_t gpfn)
|
||||
{
|
||||
return xc_domain_add_to_physmap(xch, domid, space, idx, gpfn);
|
||||
}
|
||||
#else
|
||||
static inline int xen_xc_domain_add_to_physmap(XenXC xch, uint32_t domid,
|
||||
unsigned int space,
|
||||
unsigned long idx,
|
||||
xen_pfn_t gpfn)
|
||||
{
|
||||
/* In Xen 4.6 rc is -1 and errno contains the error value. */
|
||||
int rc = xc_domain_add_to_physmap(xch, domid, space, idx, gpfn);
|
||||
if (rc == -1)
|
||||
return errno;
|
||||
return rc;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* QEMU_HW_XEN_COMMON_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue