Commit | Line | Data |
---|---|---|
c1c5413a SS |
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 | ||
9c35e90c IC |
19 | #define XEN_UNPLUG_ALL_IDE_DISKS (1<<0) |
20 | #define XEN_UNPLUG_ALL_NICS (1<<1) | |
21 | #define XEN_UNPLUG_AUX_IDE_DISKS (1<<2) | |
22 | #define XEN_UNPLUG_ALL (XEN_UNPLUG_ALL_IDE_DISKS|\ | |
23 | XEN_UNPLUG_ALL_NICS|\ | |
24 | XEN_UNPLUG_AUX_IDE_DISKS) | |
25 | ||
26 | #define XEN_UNPLUG_UNNECESSARY (1<<16) | |
27 | #define XEN_UNPLUG_NEVER (1<<17) | |
c1c5413a SS |
28 | |
29 | static inline int xen_must_unplug_nics(void) { | |
30 | #if (defined(CONFIG_XEN_NETDEV_FRONTEND) || \ | |
31 | defined(CONFIG_XEN_NETDEV_FRONTEND_MODULE)) && \ | |
5f76d707 | 32 | defined(CONFIG_XEN_PVHVM) |
c1c5413a SS |
33 | return 1; |
34 | #else | |
35 | return 0; | |
36 | #endif | |
37 | } | |
38 | ||
39 | static inline int xen_must_unplug_disks(void) { | |
40 | #if (defined(CONFIG_XEN_BLKDEV_FRONTEND) || \ | |
41 | defined(CONFIG_XEN_BLKDEV_FRONTEND_MODULE)) && \ | |
5f76d707 | 42 | defined(CONFIG_XEN_PVHVM) |
c1c5413a SS |
43 | return 1; |
44 | #else | |
45 | return 0; | |
46 | #endif | |
47 | } | |
48 | ||
51c71a3b KRW |
49 | #if defined(CONFIG_XEN_PVHVM) |
50 | extern bool xen_has_pv_devices(void); | |
51 | extern bool xen_has_pv_disk_devices(void); | |
52 | extern bool xen_has_pv_nic_devices(void); | |
53 | extern bool xen_has_pv_and_legacy_disk_devices(void); | |
54 | #else | |
55 | static inline bool xen_has_pv_devices(void) | |
56 | { | |
57 | return IS_ENABLED(CONFIG_XEN); | |
58 | } | |
59 | static inline bool xen_has_pv_disk_devices(void) | |
60 | { | |
61 | return IS_ENABLED(CONFIG_XEN); | |
62 | } | |
63 | static inline bool xen_has_pv_nic_devices(void) | |
64 | { | |
65 | return IS_ENABLED(CONFIG_XEN); | |
66 | } | |
67 | static inline bool xen_has_pv_and_legacy_disk_devices(void) | |
68 | { | |
69 | return false; | |
70 | } | |
71 | #endif | |
c1c5413a | 72 | #endif /* _XEN_PLATFORM_PCI_H */ |