linux/net/smc/smc_pnet.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Shared Memory Communications over RDMA (SMC-R) and RoCE
   4 *
   5 *  PNET table queries
   6 *
   7 *  Copyright IBM Corp. 2016
   8 *
   9 *  Author(s):  Thomas Richter <tmricht@linux.vnet.ibm.com>
  10 */
  11
  12#ifndef _SMC_PNET_H
  13#define _SMC_PNET_H
  14
  15#if IS_ENABLED(CONFIG_HAVE_PNETID)
  16#include <asm/pnet.h>
  17#endif
  18
  19struct smc_ib_device;
  20struct smcd_dev;
  21struct smc_init_info;
  22
  23/**
  24 * struct smc_pnettable - SMC PNET table anchor
  25 * @lock: Lock for list action
  26 * @pnetlist: List of PNETIDs
  27 */
  28struct smc_pnettable {
  29        rwlock_t lock;
  30        struct list_head pnetlist;
  31};
  32
  33static inline int smc_pnetid_by_dev_port(struct device *dev,
  34                                         unsigned short port, u8 *pnetid)
  35{
  36#if IS_ENABLED(CONFIG_HAVE_PNETID)
  37        return pnet_id_by_dev_port(dev, port, pnetid);
  38#else
  39        return -ENOENT;
  40#endif
  41}
  42
  43int smc_pnet_init(void) __init;
  44int smc_pnet_net_init(struct net *net);
  45void smc_pnet_exit(void);
  46void smc_pnet_net_exit(struct net *net);
  47void smc_pnet_find_roce_resource(struct sock *sk, struct smc_init_info *ini);
  48void smc_pnet_find_ism_resource(struct sock *sk, struct smc_init_info *ini);
  49
  50#endif
  51