brintos

brintos / linux-shallow public Read only

0
0
Text · 4.2 KiB · 226ae37 Raw
118 lines · c
1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */2/*3 * Copyright (c) 2004 Topspin Communications.  All rights reserved.4 * Copyright (c) 2005 Intel Corporation. All rights reserved.5 * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.6 */7 8#ifndef _IB_CACHE_H9#define _IB_CACHE_H10 11#include <rdma/ib_verbs.h>12 13int rdma_query_gid(struct ib_device *device, u32 port_num, int index,14		   union ib_gid *gid);15void *rdma_read_gid_hw_context(const struct ib_gid_attr *attr);16const struct ib_gid_attr *rdma_find_gid(struct ib_device *device,17					const union ib_gid *gid,18					enum ib_gid_type gid_type,19					struct net_device *ndev);20const struct ib_gid_attr *rdma_find_gid_by_port(struct ib_device *ib_dev,21						const union ib_gid *gid,22						enum ib_gid_type gid_type,23						u32 port,24						struct net_device *ndev);25const struct ib_gid_attr *rdma_find_gid_by_filter(26	struct ib_device *device, const union ib_gid *gid, u32 port_num,27	bool (*filter)(const union ib_gid *gid, const struct ib_gid_attr *,28		       void *),29	void *context);30 31int rdma_read_gid_l2_fields(const struct ib_gid_attr *attr,32			    u16 *vlan_id, u8 *smac);33struct net_device *rdma_read_gid_attr_ndev_rcu(const struct ib_gid_attr *attr);34 35/**36 * ib_get_cached_pkey - Returns a cached PKey table entry37 * @device: The device to query.38 * @port_num: The port number of the device to query.39 * @index: The index into the cached PKey table to query.40 * @pkey: The PKey value found at the specified index.41 *42 * ib_get_cached_pkey() fetches the specified PKey table entry stored in43 * the local software cache.44 */45int ib_get_cached_pkey(struct ib_device    *device_handle,46		       u32                  port_num,47		       int                  index,48		       u16                 *pkey);49 50/**51 * ib_find_cached_pkey - Returns the PKey table index where a specified52 *   PKey value occurs.53 * @device: The device to query.54 * @port_num: The port number of the device to search for the PKey.55 * @pkey: The PKey value to search for.56 * @index: The index into the cached PKey table where the PKey was found.57 *58 * ib_find_cached_pkey() searches the specified PKey table in59 * the local software cache.60 */61int ib_find_cached_pkey(struct ib_device    *device,62			u32                  port_num,63			u16                  pkey,64			u16                 *index);65 66/**67 * ib_find_exact_cached_pkey - Returns the PKey table index where a specified68 *   PKey value occurs. Comparison uses the FULL 16 bits (incl membership bit)69 * @device: The device to query.70 * @port_num: The port number of the device to search for the PKey.71 * @pkey: The PKey value to search for.72 * @index: The index into the cached PKey table where the PKey was found.73 *74 * ib_find_exact_cached_pkey() searches the specified PKey table in75 * the local software cache.76 */77int ib_find_exact_cached_pkey(struct ib_device    *device,78			      u32                  port_num,79			      u16                  pkey,80			      u16                 *index);81 82/**83 * ib_get_cached_lmc - Returns a cached lmc table entry84 * @device: The device to query.85 * @port_num: The port number of the device to query.86 * @lmc: The lmc value for the specified port for that device.87 *88 * ib_get_cached_lmc() fetches the specified lmc table entry stored in89 * the local software cache.90 */91int ib_get_cached_lmc(struct ib_device *device,92		      u32               port_num,93		      u8                *lmc);94 95/**96 * ib_get_cached_port_state - Returns a cached port state table entry97 * @device: The device to query.98 * @port_num: The port number of the device to query.99 * @port_state: port_state for the specified port for that device.100 *101 * ib_get_cached_port_state() fetches the specified port_state table entry stored in102 * the local software cache.103 */104int ib_get_cached_port_state(struct ib_device *device,105			     u32               port_num,106			      enum ib_port_state *port_active);107 108bool rdma_is_zero_gid(const union ib_gid *gid);109const struct ib_gid_attr *rdma_get_gid_attr(struct ib_device *device,110					    u32 port_num, int index);111void rdma_put_gid_attr(const struct ib_gid_attr *attr);112void rdma_hold_gid_attr(const struct ib_gid_attr *attr);113ssize_t rdma_query_gid_table(struct ib_device *device,114			     struct ib_uverbs_gid_entry *entries,115			     size_t max_entries);116 117#endif /* _IB_CACHE_H */118