1 /*
2  * Ultra Wide Band
3  * Debug interface commands
4  *
5  * Copyright (C) 2008 Cambridge Silicon Radio Ltd.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License version
9  * 2 as published by the Free Software Foundation.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 #ifndef __LINUX__UWB__DEBUG_CMD_H__
20 #define __LINUX__UWB__DEBUG_CMD_H__
21 
22 #include <linux/types.h>
23 
24 /*
25  * Debug interface commands
26  *
27  * UWB_DBG_CMD_RSV_ESTABLISH: Establish a new unicast reservation.
28  *
29  * UWB_DBG_CMD_RSV_TERMINATE: Terminate the Nth reservation.
30  */
31 
32 enum uwb_dbg_cmd_type {
33 	UWB_DBG_CMD_RSV_ESTABLISH = 1,
34 	UWB_DBG_CMD_RSV_TERMINATE = 2,
35 	UWB_DBG_CMD_IE_ADD = 3,
36 	UWB_DBG_CMD_IE_RM = 4,
37 	UWB_DBG_CMD_RADIO_START = 5,
38 	UWB_DBG_CMD_RADIO_STOP = 6,
39 };
40 
41 struct uwb_dbg_cmd_rsv_establish {
42 	__u8  target[6];
43 	__u8  type;
44 	__u16 max_mas;
45 	__u16 min_mas;
46 	__u8  max_interval;
47 };
48 
49 struct uwb_dbg_cmd_rsv_terminate {
50 	int index;
51 };
52 
53 struct uwb_dbg_cmd_ie {
54 	__u8 data[128];
55 	int len;
56 };
57 
58 struct uwb_dbg_cmd {
59 	__u32 type;
60 	union {
61 		struct uwb_dbg_cmd_rsv_establish rsv_establish;
62 		struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
63 		struct uwb_dbg_cmd_ie ie_add;
64 		struct uwb_dbg_cmd_ie ie_rm;
65 	};
66 };
67 
68 #endif /* #ifndef __LINUX__UWB__DEBUG_CMD_H__ */
69