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
13struct 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
27const struct vfio_device_ops *pds_vfio_ops_info(void);
28struct pds_vfio_pci_device *pds_vfio_pci_drvdata(struct pci_dev *pdev);
29void pds_vfio_reset(struct pds_vfio_pci_device *pds_vfio,
30 enum vfio_device_mig_state state);
31
32struct pci_dev *pds_vfio_to_pci_dev(struct pds_vfio_pci_device *pds_vfio);
33struct device *pds_vfio_to_dev(struct pds_vfio_pci_device *pds_vfio);
34
35#endif /* _VFIO_DEV_H_ */
36

source code of linux/drivers/vfio/pci/pds/vfio_dev.h