/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (C) 2025 Intel Corporation. */ #ifndef _IIDC_RDMA_IDPF_H_ #define _IIDC_RDMA_IDPF_H_ #include /* struct to be populated by core LAN PCI driver */ struct iidc_rdma_vport_dev_info { struct auxiliary_device *adev; struct auxiliary_device *core_adev; struct net_device *netdev; u16 vport_id; }; struct iidc_rdma_vport_auxiliary_dev { struct auxiliary_device adev; struct iidc_rdma_vport_dev_info *vdev_info; }; struct iidc_rdma_vport_auxiliary_drv { struct auxiliary_driver adrv; void (*event_handler)(struct iidc_rdma_vport_dev_info *vdev, struct iidc_rdma_event *event); }; /* struct to be populated by core LAN PCI driver */ enum iidc_function_type { IIDC_FUNCTION_TYPE_PF, IIDC_FUNCTION_TYPE_VF, }; struct iidc_rdma_lan_mapped_mem_region { u8 __iomem *region_addr; __le64 size; __le64 start_offset; }; struct iidc_rdma_priv_dev_info { struct msix_entry *msix_entries; u16 msix_count; /* How many vectors are reserved for this device */ enum iidc_function_type ftype; __le16 num_memory_regions; struct iidc_rdma_lan_mapped_mem_region *mapped_mem_regions; }; int idpf_idc_vport_dev_ctrl(struct iidc_rdma_core_dev_info *cdev_info, bool up); int idpf_idc_request_reset(struct iidc_rdma_core_dev_info *cdev_info, enum iidc_rdma_reset_type __always_unused reset_type); int idpf_idc_rdma_vc_send_sync(struct iidc_rdma_core_dev_info *cdev_info, u8 *send_msg, u16 msg_size, u8 *recv_msg, u16 *recv_len); #endif /* _IIDC_RDMA_IDPF_H_ */