1*f0129207SStephen Hemminger /* SPDX-License-Identifier: BSD-3-Clause 27525ebd8STal Shnaiderman * Copyright (C) Mellanox Technologies, Ltd. 2001-2020. 37525ebd8STal Shnaiderman */ 4*f0129207SStephen Hemminger 57525ebd8STal Shnaiderman #ifndef __MLX5_WIN_ETX_H__ 67525ebd8STal Shnaiderman #define __MLX5_WIN_ETX_H__ 77525ebd8STal Shnaiderman 87525ebd8STal Shnaiderman #ifdef __cplusplus 97525ebd8STal Shnaiderman extern "C" { 107525ebd8STal Shnaiderman #endif 117525ebd8STal Shnaiderman 129dab4d62SMichael Baum #include "mlx5_prm.h" 137525ebd8STal Shnaiderman #include "mlx5devx.h" 147525ebd8STal Shnaiderman 157525ebd8STal Shnaiderman typedef struct mlx5_context { 167525ebd8STal Shnaiderman devx_device_ctx *devx_ctx; 177525ebd8STal Shnaiderman struct devx_device mlx5_dev; 18165e5d07STal Shnaiderman struct devx_shutdown_event shutdown_event_obj; 197525ebd8STal Shnaiderman } mlx5_context_st; 207525ebd8STal Shnaiderman 217525ebd8STal Shnaiderman typedef struct { 227525ebd8STal Shnaiderman devx_device_ctx *devx_ctx; 237525ebd8STal Shnaiderman struct devx_obj_handle *obj; 247525ebd8STal Shnaiderman } mlx5_devx_obj_st; 257525ebd8STal Shnaiderman 267525ebd8STal Shnaiderman struct mlx5_devx_umem { 277525ebd8STal Shnaiderman void *addr; 287525ebd8STal Shnaiderman struct devx_obj_handle *umem_hdl; 297525ebd8STal Shnaiderman uint32_t umem_id; 307525ebd8STal Shnaiderman }; 317525ebd8STal Shnaiderman 321552fb28STal Shnaiderman struct mlx5_pd { 331552fb28STal Shnaiderman void *obj; 341552fb28STal Shnaiderman uint32_t pdn; 351552fb28STal Shnaiderman devx_device_ctx *devx_ctx; 361552fb28STal Shnaiderman }; 371552fb28STal Shnaiderman 3899d7c45cSTal Shnaiderman struct mlx5_devx_clock { 3999d7c45cSTal Shnaiderman void *p_iseg_internal_timer; 4099d7c45cSTal Shnaiderman u64 clock_frequency_hz; 4199d7c45cSTal Shnaiderman int is_stable_clock_frequency; 4299d7c45cSTal Shnaiderman }; 4399d7c45cSTal Shnaiderman 447525ebd8STal Shnaiderman #define GET_DEVX_CTX(ctx) (((mlx5_context_st *)ctx)->devx_ctx) 457525ebd8STal Shnaiderman #define GET_OBJ_CTX(obj) (((mlx5_devx_obj_st *)obj)->devx_ctx) 467525ebd8STal Shnaiderman 477525ebd8STal Shnaiderman #endif /* __MLX5_WIN_ETX_H__ */ 48