1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Ultra Wide Band
4  * Debug interface commands
5  *
6  * Copyright (C) 2008 Cambridge Silicon Radio Ltd.
7  */
8 #ifndef __LINUX__UWB__DEBUG_CMD_H__
9 #define __LINUX__UWB__DEBUG_CMD_H__
10 
11 #include <linux/types.h>
12 
13 /*
14  * Debug interface commands
15  *
16  * UWB_DBG_CMD_RSV_ESTABLISH: Establish a new unicast reservation.
17  *
18  * UWB_DBG_CMD_RSV_TERMINATE: Terminate the Nth reservation.
19  */
20 
21 enum uwb_dbg_cmd_type {
22 	UWB_DBG_CMD_RSV_ESTABLISH = 1,
23 	UWB_DBG_CMD_RSV_TERMINATE = 2,
24 	UWB_DBG_CMD_IE_ADD = 3,
25 	UWB_DBG_CMD_IE_RM = 4,
26 	UWB_DBG_CMD_RADIO_START = 5,
27 	UWB_DBG_CMD_RADIO_STOP = 6,
28 };
29 
30 struct uwb_dbg_cmd_rsv_establish {
31 	__u8  target[6];
32 	__u8  type;
33 	__u16 max_mas;
34 	__u16 min_mas;
35 	__u8  max_interval;
36 };
37 
38 struct uwb_dbg_cmd_rsv_terminate {
39 	int index;
40 };
41 
42 struct uwb_dbg_cmd_ie {
43 	__u8 data[128];
44 	int len;
45 };
46 
47 struct uwb_dbg_cmd {
48 	__u32 type;
49 	union {
50 		struct uwb_dbg_cmd_rsv_establish rsv_establish;
51 		struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
52 		struct uwb_dbg_cmd_ie ie_add;
53 		struct uwb_dbg_cmd_ie ie_rm;
54 	};
55 };
56 
57 #endif /* #ifndef __LINUX__UWB__DEBUG_CMD_H__ */
58