xref: /dpdk/drivers/common/mlx5/windows/mlx5_win_ext.h (revision f0129207ec621b593b67aaf8159c4faab878e73f)
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