forked from mirrors/linux
		
	 52a22c0ed0
			
		
	
	
		52a22c0ed0
		
	
	
	
	
		
			
			Introduce APIs to handle the execution of device parts admin commands. These APIs cover functionalities such as mode setting, object creation and destruction, and operations like parts get/set and metadata retrieval. These APIs will be utilized in upcoming patches within this series. Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Yishai Hadas <yishaih@nvidia.com> Link: https://lore.kernel.org/r/20241113115200.209269-5-yishaih@nvidia.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _LINUX_VIRTIO_PCI_ADMIN_H
 | |
| #define _LINUX_VIRTIO_PCI_ADMIN_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| #include <linux/pci.h>
 | |
| 
 | |
| #ifdef CONFIG_VIRTIO_PCI_ADMIN_LEGACY
 | |
| bool virtio_pci_admin_has_legacy_io(struct pci_dev *pdev);
 | |
| int virtio_pci_admin_legacy_common_io_write(struct pci_dev *pdev, u8 offset,
 | |
| 					    u8 size, u8 *buf);
 | |
| int virtio_pci_admin_legacy_common_io_read(struct pci_dev *pdev, u8 offset,
 | |
| 					   u8 size, u8 *buf);
 | |
| int virtio_pci_admin_legacy_device_io_write(struct pci_dev *pdev, u8 offset,
 | |
| 					    u8 size, u8 *buf);
 | |
| int virtio_pci_admin_legacy_device_io_read(struct pci_dev *pdev, u8 offset,
 | |
| 					   u8 size, u8 *buf);
 | |
| int virtio_pci_admin_legacy_io_notify_info(struct pci_dev *pdev,
 | |
| 					   u8 req_bar_flags, u8 *bar,
 | |
| 					   u64 *bar_offset);
 | |
| #endif
 | |
| 
 | |
| bool virtio_pci_admin_has_dev_parts(struct pci_dev *pdev);
 | |
| int virtio_pci_admin_mode_set(struct pci_dev *pdev, u8 mode);
 | |
| int virtio_pci_admin_obj_create(struct pci_dev *pdev, u16 obj_type, u8 operation_type,
 | |
| 				u32 *obj_id);
 | |
| int virtio_pci_admin_obj_destroy(struct pci_dev *pdev, u16 obj_type, u32 id);
 | |
| int virtio_pci_admin_dev_parts_metadata_get(struct pci_dev *pdev, u16 obj_type,
 | |
| 					    u32 id, u8 metadata_type, u32 *out);
 | |
| int virtio_pci_admin_dev_parts_get(struct pci_dev *pdev, u16 obj_type, u32 id,
 | |
| 				   u8 get_type, struct scatterlist *res_sg, u32 *res_size);
 | |
| int virtio_pci_admin_dev_parts_set(struct pci_dev *pdev, struct scatterlist *data_sg);
 | |
| 
 | |
| #endif /* _LINUX_VIRTIO_PCI_ADMIN_H */
 |