1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  * Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES
4  *
5  * These are definitions for the command interface for mlx5 HW. mlx5 FW has a
6  * User Context mechanism which allows the FW to understand a security scope.
7  * FWCTL binds each FD to a FW user context and then places the User Context ID
8  * (UID) in each command header. The created User Context has a capability set
9  * that is appropriate for FWCTL's security model.
10  *
11  * Command formation should use a copy of the structs in mlx5_ifc.h following
12  * the Programmers Reference Manual. A open release is available here:
13  *
14  *  https://network.nvidia.com/files/doc-2020/ethernet-adapters-programming-manual.pdf
15  *
16  * The device_type for this file is FWCTL_DEVICE_TYPE_MLX5.
17  */
18 #ifndef _UAPI_FWCTL_MLX5_H
19 #define _UAPI_FWCTL_MLX5_H
20 
21 #include <linux/types.h>
22 
23 /**
24  * struct fwctl_info_mlx5 - ioctl(FWCTL_INFO) out_device_data
25  * @uid: The FW UID this FD is bound to. Each command header will force
26  *	this value.
27  * @uctx_caps: The FW capabilities that are enabled for the uid.
28  *
29  * Return basic information about the FW interface available.
30  */
31 struct fwctl_info_mlx5 {
32 	__u32 uid;
33 	__u32 uctx_caps;
34 };
35 
36 #endif
37