cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ib_cache.h (4329B)


      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_H
      9#define _IB_CACHE_H
     10
     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 entry
     37 * @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 in
     43 * 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 specified
     52 *   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 in
     59 * 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 specified
     68 *   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 in
     75 * 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 entry
     84 * @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 in
     89 * 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 entry
     97 * @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 in
    102 * 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 */