|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | /* | 
|  | * Shared Memory Communications over RDMA (SMC-R) and RoCE | 
|  | * | 
|  | *  PNET table queries | 
|  | * | 
|  | *  Copyright IBM Corp. 2016 | 
|  | * | 
|  | *  Author(s):  Thomas Richter <tmricht@linux.vnet.ibm.com> | 
|  | */ | 
|  |  | 
|  | #ifndef _SMC_PNET_H | 
|  | #define _SMC_PNET_H | 
|  |  | 
|  | #if IS_ENABLED(CONFIG_HAVE_PNETID) | 
|  | #include <asm/pnet.h> | 
|  | #endif | 
|  |  | 
|  | struct smc_ib_device; | 
|  | struct smcd_dev; | 
|  |  | 
|  | static inline int smc_pnetid_by_dev_port(struct device *dev, | 
|  | unsigned short port, u8 *pnetid) | 
|  | { | 
|  | #if IS_ENABLED(CONFIG_HAVE_PNETID) | 
|  | return pnet_id_by_dev_port(dev, port, pnetid); | 
|  | #else | 
|  | return -ENOENT; | 
|  | #endif | 
|  | } | 
|  |  | 
|  | int smc_pnet_init(void) __init; | 
|  | void smc_pnet_exit(void); | 
|  | int smc_pnet_remove_by_ibdev(struct smc_ib_device *ibdev); | 
|  | void smc_pnet_find_roce_resource(struct sock *sk, | 
|  | struct smc_ib_device **smcibdev, u8 *ibport, | 
|  | unsigned short vlan_id, u8 gid[]); | 
|  | void smc_pnet_find_ism_resource(struct sock *sk, struct smcd_dev **smcismdev); | 
|  |  | 
|  | #endif |