master
h 33 lines 957 Bytes
Raw
1 /*
2 * Copyright (c) 2007, Neocleus Corporation.
3 * Copyright (c) 2007, Intel Corporation.
4 *
5 * SPDX-License-Identifier: GPL-2.0-only
6 *
7 * Alex Novik <alex@neocleus.com>
8 * Allen Kay <allen.m.kay@intel.com>
9 * Guy Zana <guy@neocleus.com>
10 */
11 #ifndef XEN_IGD_H
12 #define XEN_IGD_H
13
14 #include "hw/xen/xen-host-pci-device.h"
15
16 typedef struct XenPCIPassthroughState XenPCIPassthroughState;
17
18 bool xen_igd_gfx_pt_enabled(void);
19 void xen_igd_gfx_pt_set(bool value, Error **errp);
20
21 uint32_t igd_read_opregion(XenPCIPassthroughState *s);
22 void xen_igd_reserve_slot(PCIBus *pci_bus);
23 void igd_write_opregion(XenPCIPassthroughState *s, uint32_t val);
24 void xen_igd_passthrough_isa_bridge_create(XenPCIPassthroughState *s,
25 XenHostPCIDevice *dev);
26
27 static inline bool is_igd_vga_passthrough(XenHostPCIDevice *dev)
28 {
29 return (xen_igd_gfx_pt_enabled()
30 && ((dev->class_code >> 0x8) == PCI_CLASS_DISPLAY_VGA));
31 }
32
33 #endif