1dd45b880SAndrew Rybchenko /* SPDX-License-Identifier: BSD-3-Clause 2dd45b880SAndrew Rybchenko * 3*98d26ef7SAndrew Rybchenko * Copyright(c) 2019-2021 Xilinx, Inc. 4dd45b880SAndrew Rybchenko * Copyright(c) 2019 Solarflare Communications Inc. 5dd45b880SAndrew Rybchenko * 6dd45b880SAndrew Rybchenko * This software was jointly developed between OKTET Labs (under contract 7dd45b880SAndrew Rybchenko * for Solarflare) and Solarflare Communications, Inc. 8dd45b880SAndrew Rybchenko */ 9dd45b880SAndrew Rybchenko 10dd45b880SAndrew Rybchenko #ifndef _SFC_SRIOV_H 11dd45b880SAndrew Rybchenko #define _SFC_SRIOV_H 12dd45b880SAndrew Rybchenko 13dd45b880SAndrew Rybchenko #include "efx.h" 14dd45b880SAndrew Rybchenko 15dd45b880SAndrew Rybchenko #ifdef __cplusplus 16dd45b880SAndrew Rybchenko extern "C" { 17dd45b880SAndrew Rybchenko #endif 18dd45b880SAndrew Rybchenko 19dd45b880SAndrew Rybchenko struct sfc_sriov { 20dd45b880SAndrew Rybchenko /** Number of enabled virtual functions */ 21dd45b880SAndrew Rybchenko unsigned int num_vfs; 22dd45b880SAndrew Rybchenko /** PF and VFs vPorts configuration */ 23dd45b880SAndrew Rybchenko efx_vport_config_t *vport_config; 24dd45b880SAndrew Rybchenko /** vSwitch handle */ 25dd45b880SAndrew Rybchenko efx_vswitch_t *vswitch; 26dd45b880SAndrew Rybchenko }; 27dd45b880SAndrew Rybchenko 28dd45b880SAndrew Rybchenko struct sfc_adapter; 29dd45b880SAndrew Rybchenko 30dd45b880SAndrew Rybchenko int sfc_sriov_attach(struct sfc_adapter *sa); 31dd45b880SAndrew Rybchenko void sfc_sriov_detach(struct sfc_adapter *sa); 32dd45b880SAndrew Rybchenko 33dd45b880SAndrew Rybchenko int sfc_sriov_vswitch_create(struct sfc_adapter *sa); 34dd45b880SAndrew Rybchenko void sfc_sriov_vswitch_destroy(struct sfc_adapter *sa); 35dd45b880SAndrew Rybchenko 36dd45b880SAndrew Rybchenko #ifdef __cplusplus 37dd45b880SAndrew Rybchenko } 38dd45b880SAndrew Rybchenko #endif 39dd45b880SAndrew Rybchenko #endif /* _SFC_SRIOV_H */ 40