/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ /* Copyright (c) 2020 Mellanox Technologies Ltd */ #ifndef __MLX5_IFC_VHCA_EVENT_H__ #define __MLX5_IFC_VHCA_EVENT_H__ enum mlx5_ifc_vhca_state { MLX5_VHCA_STATE_INVALID = 0x0, MLX5_VHCA_STATE_ALLOCATED = 0x1, MLX5_VHCA_STATE_ACTIVE = 0x2, MLX5_VHCA_STATE_IN_USE = 0x3, MLX5_VHCA_STATE_TEARDOWN_REQUEST = 0x4, }; struct mlx5_ifc_vhca_state_context_bits { u8 arm_change_event[0x1]; u8 reserved_at_1[0xb]; u8 vhca_state[0x4]; u8 reserved_at_10[0x10]; u8 sw_function_id[0x20]; u8 reserved_at_40[0x40]; }; struct mlx5_ifc_query_vhca_state_out_bits { u8 status[0x8]; u8 reserved_at_8[0x18]; u8 syndrome[0x20]; u8 reserved_at_40[0x40]; struct mlx5_ifc_vhca_state_context_bits vhca_state_context; }; struct mlx5_ifc_query_vhca_state_in_bits { u8 opcode[0x10]; u8 uid[0x10]; u8 reserved_at_20[0x10]; u8 op_mod[0x10]; u8 embedded_cpu_function[0x1]; u8 reserved_at_41[0xf]; u8 function_id[0x10]; u8 reserved_at_60[0x20]; }; struct mlx5_ifc_vhca_state_field_select_bits { u8 reserved_at_0[0x1e]; u8 sw_function_id[0x1]; u8 arm_change_event[0x1]; }; struct mlx5_ifc_modify_vhca_state_out_bits { u8 status[0x8]; u8 reserved_at_8[0x18]; u8 syndrome[0x20]; u8 reserved_at_40[0x40]; }; struct mlx5_ifc_modify_vhca_state_in_bits { u8 opcode[0x10]; u8 uid[0x10]; u8 reserved_at_20[0x10]; u8 op_mod[0x10]; u8 embedded_cpu_function[0x1]; u8 reserved_at_41[0xf]; u8 function_id[0x10]; struct mlx5_ifc_vhca_state_field_select_bits vhca_state_field_select; struct mlx5_ifc_vhca_state_context_bits vhca_state_context; }; #endif