• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #if !defined(WM_IOCTL_H_20080714)
15 #define WM_IOCTL_H_20080714
16 #if !defined(__KERNEL__)
17 #include <net/if.h>
18 #endif
19 
20 #define NETLINK_WIMAX	31
21 
22 #define SIOCWMIOCTL			SIOCDEVPRIVATE
23 
24 #define SIOCG_DATA			0x8D10
25 #define SIOCS_DATA			0x8D11
26 
27 enum {
28 	SIOC_DATA_FSM,
29 	SIOC_DATA_NETLIST,
30 	SIOC_DATA_CONNNSP,
31 	SIOC_DATA_CONNCOMP,
32 	SIOC_DATA_PROFILEID,
33 
34 	SIOC_DATA_END
35 };
36 
37 #define SIOC_DATA_MAX			16
38 
39 /* FSM */
40 enum {
41 	M_INIT = 0,
42 	M_OPEN_OFF,
43 	M_OPEN_ON,
44 	M_SCAN,
45 	M_CONNECTING,
46 	M_CONNECTED,
47 	M_FSM_END,
48 
49 	C_INIT = 0,
50 	C_CONNSTART,
51 	C_ASSOCSTART,
52 	C_RNG,
53 	C_SBC,
54 	C_AUTH,
55 	C_REG,
56 	C_DSX,
57 	C_ASSOCCOMPLETE,
58 	C_CONNCOMPLETE,
59 	C_FSM_END,
60 
61 	D_INIT = 0,
62 	D_READY,
63 	D_LISTEN,
64 	D_IPACQUISITION,
65 
66 	END_FSM
67 };
68 
69 struct fsm_s {
70 	int		m_status;	/*main status*/
71 	int		c_status;	/*connection status*/
72 	int		d_status;	/*oma-dm status*/
73 };
74 
75 struct data_s {
76 	int		size;
77 	void	*buf;
78 };
79 
80 struct wm_req_s {
81 	union {
82 		char	ifrn_name[IFNAMSIZ];
83 	} ifr_ifrn;
84 
85 	unsigned short	cmd;
86 
87 	unsigned short	data_id;
88 	struct data_s	data;
89 
90 /* NOTE: sizeof(struct wm_req_s) must be less than sizeof(struct ifreq). */
91 };
92 
93 #ifndef ifr_name
94 #define ifr_name	ifr_ifrn.ifrn_name
95 #endif
96 
97 #endif
98