1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|---|
2 | /* Copyright(c) 2023 Advanced Micro Devices, Inc. */ |
3 | |
4 | #ifndef _VFIO_DEV_H_ |
5 | #define _VFIO_DEV_H_ |
6 | |
7 | #include <linux/pci.h> |
8 | #include <linux/vfio_pci_core.h> |
9 | |
10 | #include "dirty.h" |
11 | #include "lm.h" |
12 | |
13 | struct pds_vfio_pci_device { |
14 | struct vfio_pci_core_device vfio_coredev; |
15 | |
16 | struct pds_vfio_lm_file *save_file; |
17 | struct pds_vfio_lm_file *restore_file; |
18 | struct pds_vfio_dirty dirty; |
19 | struct mutex state_mutex; /* protect migration state */ |
20 | enum vfio_device_mig_state state; |
21 | struct notifier_block nb; |
22 | |
23 | int vf_id; |
24 | u16 client_id; |
25 | }; |
26 | |
27 | const struct vfio_device_ops *pds_vfio_ops_info(void); |
28 | struct pds_vfio_pci_device *pds_vfio_pci_drvdata(struct pci_dev *pdev); |
29 | void pds_vfio_reset(struct pds_vfio_pci_device *pds_vfio, |
30 | enum vfio_device_mig_state state); |
31 | |
32 | struct pci_dev *pds_vfio_to_pci_dev(struct pds_vfio_pci_device *pds_vfio); |
33 | struct device *pds_vfio_to_dev(struct pds_vfio_pci_device *pds_vfio); |
34 | |
35 | #endif /* _VFIO_DEV_H_ */ |
36 |