linux/include/linux/pds/pds_common.h

/* SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB) OR BSD-2-Clause */
/* Copyright(c) 2023 Advanced Micro Devices, Inc. */

#ifndef _PDS_COMMON_H_
#define _PDS_COMMON_H_

#include <linux/notifier.h>

#define PDS_CORE_DRV_NAME

/* the device's internal addressing uses up to 52 bits */
#define PDS_CORE_ADDR_LEN
#define PDS_CORE_ADDR_MASK
#define PDS_PAGE_SIZE

enum pds_core_driver_type {};

enum pds_core_vif_types {};

#define PDS_DEV_TYPE_CORE_STR
#define PDS_DEV_TYPE_VDPA_STR
#define PDS_DEV_TYPE_VFIO_STR
#define PDS_DEV_TYPE_ETH_STR
#define PDS_DEV_TYPE_RDMA_STR
#define PDS_DEV_TYPE_LM_STR

#define PDS_VDPA_DEV_NAME
#define PDS_VFIO_LM_DEV_NAME

struct pdsc;

int pdsc_register_notify(struct notifier_block *nb);
void pdsc_unregister_notify(struct notifier_block *nb);
void *pdsc_get_pf_struct(struct pci_dev *vf_pdev);
int pds_client_register(struct pdsc *pf, char *devname);
int pds_client_unregister(struct pdsc *pf, u16 client_id);
#endif /* _PDS_COMMON_H_ */