xref: /linux/include/xen/platform_pci.h (revision d39d0ed196aa1685bb24771e92f78633c66ac9cb)
1 #ifndef _XEN_PLATFORM_PCI_H
2 #define _XEN_PLATFORM_PCI_H
3 
4 #define XEN_IOPORT_MAGIC_VAL 0x49d2
5 #define XEN_IOPORT_LINUX_PRODNUM 0x0003
6 #define XEN_IOPORT_LINUX_DRVVER  0x0001
7 
8 #define XEN_IOPORT_BASE 0x10
9 
10 #define XEN_IOPORT_PLATFLAGS	(XEN_IOPORT_BASE + 0) /* 1 byte access (R/W) */
11 #define XEN_IOPORT_MAGIC	(XEN_IOPORT_BASE + 0) /* 2 byte access (R) */
12 #define XEN_IOPORT_UNPLUG	(XEN_IOPORT_BASE + 0) /* 2 byte access (W) */
13 #define XEN_IOPORT_DRVVER	(XEN_IOPORT_BASE + 0) /* 4 byte access (W) */
14 
15 #define XEN_IOPORT_SYSLOG	(XEN_IOPORT_BASE + 2) /* 1 byte access (W) */
16 #define XEN_IOPORT_PROTOVER	(XEN_IOPORT_BASE + 2) /* 1 byte access (R) */
17 #define XEN_IOPORT_PRODNUM	(XEN_IOPORT_BASE + 2) /* 2 byte access (W) */
18 
19 #define XEN_UNPLUG_ALL_IDE_DISKS 1
20 #define XEN_UNPLUG_ALL_NICS 2
21 #define XEN_UNPLUG_AUX_IDE_DISKS 4
22 #define XEN_UNPLUG_ALL 7
23 #define XEN_UNPLUG_IGNORE 8
24 
25 static inline int xen_must_unplug_nics(void) {
26 #if (defined(CONFIG_XEN_NETDEV_FRONTEND) || \
27 		defined(CONFIG_XEN_NETDEV_FRONTEND_MODULE)) && \
28 		(defined(CONFIG_XEN_PLATFORM_PCI) || \
29 		 defined(CONFIG_XEN_PLATFORM_PCI_MODULE))
30         return 1;
31 #else
32         return 0;
33 #endif
34 }
35 
36 static inline int xen_must_unplug_disks(void) {
37 #if (defined(CONFIG_XEN_BLKDEV_FRONTEND) || \
38 		defined(CONFIG_XEN_BLKDEV_FRONTEND_MODULE)) && \
39 		(defined(CONFIG_XEN_PLATFORM_PCI) || \
40 		 defined(CONFIG_XEN_PLATFORM_PCI_MODULE))
41         return 1;
42 #else
43         return 0;
44 #endif
45 }
46 
47 extern int xen_platform_pci_unplug;
48 
49 #endif /* _XEN_PLATFORM_PCI_H */
50