Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
c1c5413a SS |
2 | #ifndef _XEN_PLATFORM_PCI_H |
3 | #define _XEN_PLATFORM_PCI_H | |
4 | ||
5 | #define XEN_IOPORT_MAGIC_VAL 0x49d2 | |
6 | #define XEN_IOPORT_LINUX_PRODNUM 0x0003 | |
7 | #define XEN_IOPORT_LINUX_DRVVER 0x0001 | |
8 | ||
9 | #define XEN_IOPORT_BASE 0x10 | |
10 | ||
11 | #define XEN_IOPORT_PLATFLAGS (XEN_IOPORT_BASE + 0) /* 1 byte access (R/W) */ | |
12 | #define XEN_IOPORT_MAGIC (XEN_IOPORT_BASE + 0) /* 2 byte access (R) */ | |
13 | #define XEN_IOPORT_UNPLUG (XEN_IOPORT_BASE + 0) /* 2 byte access (W) */ | |
14 | #define XEN_IOPORT_DRVVER (XEN_IOPORT_BASE + 0) /* 4 byte access (W) */ | |
15 | ||
16 | #define XEN_IOPORT_SYSLOG (XEN_IOPORT_BASE + 2) /* 1 byte access (W) */ | |
17 | #define XEN_IOPORT_PROTOVER (XEN_IOPORT_BASE + 2) /* 1 byte access (R) */ | |
18 | #define XEN_IOPORT_PRODNUM (XEN_IOPORT_BASE + 2) /* 2 byte access (W) */ | |
19 | ||
9c35e90c IC |
20 | #define XEN_UNPLUG_ALL_IDE_DISKS (1<<0) |
21 | #define XEN_UNPLUG_ALL_NICS (1<<1) | |
22 | #define XEN_UNPLUG_AUX_IDE_DISKS (1<<2) | |
23 | #define XEN_UNPLUG_ALL (XEN_UNPLUG_ALL_IDE_DISKS|\ | |
24 | XEN_UNPLUG_ALL_NICS|\ | |
25 | XEN_UNPLUG_AUX_IDE_DISKS) | |
26 | ||
27 | #define XEN_UNPLUG_UNNECESSARY (1<<16) | |
28 | #define XEN_UNPLUG_NEVER (1<<17) | |
c1c5413a SS |
29 | |
30 | static inline int xen_must_unplug_nics(void) { | |
31 | #if (defined(CONFIG_XEN_NETDEV_FRONTEND) || \ | |
32 | defined(CONFIG_XEN_NETDEV_FRONTEND_MODULE)) && \ | |
5f76d707 | 33 | defined(CONFIG_XEN_PVHVM) |
c1c5413a SS |
34 | return 1; |
35 | #else | |
36 | return 0; | |
37 | #endif | |
38 | } | |
39 | ||
40 | static inline int xen_must_unplug_disks(void) { | |
41 | #if (defined(CONFIG_XEN_BLKDEV_FRONTEND) || \ | |
42 | defined(CONFIG_XEN_BLKDEV_FRONTEND_MODULE)) && \ | |
5f76d707 | 43 | defined(CONFIG_XEN_PVHVM) |
c1c5413a SS |
44 | return 1; |
45 | #else | |
46 | return 0; | |
47 | #endif | |
48 | } | |
49 | ||
51c71a3b KRW |
50 | #if defined(CONFIG_XEN_PVHVM) |
51 | extern bool xen_has_pv_devices(void); | |
52 | extern bool xen_has_pv_disk_devices(void); | |
53 | extern bool xen_has_pv_nic_devices(void); | |
54 | extern bool xen_has_pv_and_legacy_disk_devices(void); | |
55 | #else | |
56 | static inline bool xen_has_pv_devices(void) | |
57 | { | |
58 | return IS_ENABLED(CONFIG_XEN); | |
59 | } | |
60 | static inline bool xen_has_pv_disk_devices(void) | |
61 | { | |
62 | return IS_ENABLED(CONFIG_XEN); | |
63 | } | |
64 | static inline bool xen_has_pv_nic_devices(void) | |
65 | { | |
66 | return IS_ENABLED(CONFIG_XEN); | |
67 | } | |
68 | static inline bool xen_has_pv_and_legacy_disk_devices(void) | |
69 | { | |
70 | return false; | |
71 | } | |
72 | #endif | |
c1c5413a | 73 | #endif /* _XEN_PLATFORM_PCI_H */ |