1/*
2 * Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved.
3 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#ifndef __GDM72XX_WM_IOCTL_H__
15#define __GDM72XX_WM_IOCTL_H__
16
17#if !defined(__KERNEL__)
18#include <net/if.h>
19#endif
20
21#define NETLINK_WIMAX	31
22
23#define SIOCWMIOCTL	SIOCDEVPRIVATE
24
25#define SIOCG_DATA	0x8D10
26#define SIOCS_DATA	0x8D11
27
28enum {
29	SIOC_DATA_FSM,
30	SIOC_DATA_NETLIST,
31	SIOC_DATA_CONNNSP,
32	SIOC_DATA_CONNCOMP,
33	SIOC_DATA_PROFILEID,
34
35	SIOC_DATA_END
36};
37
38#define SIOC_DATA_MAX	16
39
40/* FSM */
41enum {
42	M_INIT = 0,
43	M_OPEN_OFF,
44	M_OPEN_ON,
45	M_SCAN,
46	M_CONNECTING,
47	M_CONNECTED,
48	M_FSM_END,
49
50	C_INIT = 0,
51	C_CONNSTART,
52	C_ASSOCSTART,
53	C_RNG,
54	C_SBC,
55	C_AUTH,
56	C_REG,
57	C_DSX,
58	C_ASSOCCOMPLETE,
59	C_CONNCOMPLETE,
60	C_FSM_END,
61
62	D_INIT = 0,
63	D_READY,
64	D_LISTEN,
65	D_IPACQUISITION,
66
67	END_FSM
68};
69
70struct fsm_s {
71	int	m_status;	/*main status*/
72	int	c_status;	/*connection status*/
73	int	d_status;	/*oma-dm status*/
74};
75
76struct data_s {
77	int	size;
78	void	*buf;
79};
80
81struct wm_req_s {
82	union {
83		char ifrn_name[IFNAMSIZ];
84	} ifr_ifrn;
85	unsigned short	cmd;
86	unsigned short	data_id;
87	struct data_s	data;
88
89/* NOTE: sizeof(struct wm_req_s) must be less than sizeof(struct ifreq). */
90};
91
92#ifndef ifr_name
93#define ifr_name ifr_ifrn.ifrn_name
94#endif
95
96#endif /* __GDM72XX_WM_IOCTL_H__ */
97