74 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _XEN_PLATFORM_PCI_H3#define _XEN_PLATFORM_PCI_H4 5#define XEN_IOPORT_MAGIC_VAL 0x49d26#define XEN_IOPORT_LINUX_PRODNUM 0x00037#define XEN_IOPORT_LINUX_DRVVER 0x00018 9#define XEN_IOPORT_BASE 0x1010 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 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)29 30static inline int xen_must_unplug_nics(void) {31#if (defined(CONFIG_XEN_NETDEV_FRONTEND) || \32 defined(CONFIG_XEN_NETDEV_FRONTEND_MODULE)) && \33 defined(CONFIG_XEN_PVHVM)34 return 1;35#else36 return 0;37#endif38}39 40static inline int xen_must_unplug_disks(void) {41#if (defined(CONFIG_XEN_BLKDEV_FRONTEND) || \42 defined(CONFIG_XEN_BLKDEV_FRONTEND_MODULE)) && \43 defined(CONFIG_XEN_PVHVM)44 return 1;45#else46 return 0;47#endif48}49 50#if defined(CONFIG_XEN_PVHVM)51extern bool xen_has_pv_devices(void);52extern bool xen_has_pv_disk_devices(void);53extern bool xen_has_pv_nic_devices(void);54extern bool xen_has_pv_and_legacy_disk_devices(void);55#else56static inline bool xen_has_pv_devices(void)57{58 return IS_ENABLED(CONFIG_XEN);59}60static inline bool xen_has_pv_disk_devices(void)61{62 return IS_ENABLED(CONFIG_XEN);63}64static inline bool xen_has_pv_nic_devices(void)65{66 return IS_ENABLED(CONFIG_XEN);67}68static inline bool xen_has_pv_and_legacy_disk_devices(void)69{70 return false;71}72#endif73#endif /* _XEN_PLATFORM_PCI_H */74