Linux-libre 3.7.6-gnu1
[librecmc/linux-libre.git] / drivers / staging / gdm72xx / wm_ioctl.h
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