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

devcom.h (1408B)


      1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
      2/* Copyright (c) 2018 Mellanox Technologies */
      3
      4#ifndef __LIB_MLX5_DEVCOM_H__
      5#define __LIB_MLX5_DEVCOM_H__
      6
      7#include <linux/mlx5/driver.h>
      8
      9#define MLX5_DEVCOM_PORTS_SUPPORTED 2
     10
     11enum mlx5_devcom_components {
     12	MLX5_DEVCOM_ESW_OFFLOADS,
     13
     14	MLX5_DEVCOM_NUM_COMPONENTS,
     15};
     16
     17typedef int (*mlx5_devcom_event_handler_t)(int event,
     18					   void *my_data,
     19					   void *event_data);
     20
     21struct mlx5_devcom *mlx5_devcom_register_device(struct mlx5_core_dev *dev);
     22void mlx5_devcom_unregister_device(struct mlx5_devcom *devcom);
     23
     24void mlx5_devcom_register_component(struct mlx5_devcom *devcom,
     25				    enum mlx5_devcom_components id,
     26				    mlx5_devcom_event_handler_t handler,
     27				    void *data);
     28void mlx5_devcom_unregister_component(struct mlx5_devcom *devcom,
     29				      enum mlx5_devcom_components id);
     30
     31int mlx5_devcom_send_event(struct mlx5_devcom *devcom,
     32			   enum mlx5_devcom_components id,
     33			   int event,
     34			   void *event_data);
     35
     36void mlx5_devcom_set_paired(struct mlx5_devcom *devcom,
     37			    enum mlx5_devcom_components id,
     38			    bool paired);
     39bool mlx5_devcom_is_paired(struct mlx5_devcom *devcom,
     40			   enum mlx5_devcom_components id);
     41
     42void *mlx5_devcom_get_peer_data(struct mlx5_devcom *devcom,
     43				enum mlx5_devcom_components id);
     44void mlx5_devcom_release_peer_data(struct mlx5_devcom *devcom,
     45				   enum mlx5_devcom_components id);
     46
     47#endif
     48