virtio_pci_legacy.h (1499B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_VIRTIO_PCI_LEGACY_H 3#define _LINUX_VIRTIO_PCI_LEGACY_H 4 5#include "linux/mod_devicetable.h" 6#include <linux/pci.h> 7#include <linux/virtio_pci.h> 8 9struct virtio_pci_legacy_device { 10 struct pci_dev *pci_dev; 11 12 /* Where to read and clear interrupt */ 13 u8 __iomem *isr; 14 /* The IO mapping for the PCI config space (legacy mode only) */ 15 void __iomem *ioaddr; 16 17 struct virtio_device_id id; 18}; 19 20u64 vp_legacy_get_features(struct virtio_pci_legacy_device *ldev); 21u64 vp_legacy_get_driver_features(struct virtio_pci_legacy_device *ldev); 22void vp_legacy_set_features(struct virtio_pci_legacy_device *ldev, 23 u32 features); 24u8 vp_legacy_get_status(struct virtio_pci_legacy_device *ldev); 25void vp_legacy_set_status(struct virtio_pci_legacy_device *ldev, 26 u8 status); 27u16 vp_legacy_queue_vector(struct virtio_pci_legacy_device *ldev, 28 u16 idx, u16 vector); 29u16 vp_legacy_config_vector(struct virtio_pci_legacy_device *ldev, 30 u16 vector); 31void vp_legacy_set_queue_address(struct virtio_pci_legacy_device *ldev, 32 u16 index, u32 queue_pfn); 33bool vp_legacy_get_queue_enable(struct virtio_pci_legacy_device *ldev, 34 u16 idx); 35void vp_legacy_set_queue_size(struct virtio_pci_legacy_device *ldev, 36 u16 idx, u16 size); 37u16 vp_legacy_get_queue_size(struct virtio_pci_legacy_device *ldev, 38 u16 idx); 39int vp_legacy_probe(struct virtio_pci_legacy_device *ldev); 40void vp_legacy_remove(struct virtio_pci_legacy_device *ldev); 41 42#endif