blob: ed8f649c0042898617e9b7e9acf1442dd4d54c1c [file] [log] [blame]
Sage Ahn247e9cf2012-05-15 13:20:36 +09001/*
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
Ben Chanbbd500d2014-06-30 22:13:17 -070014#ifndef __GDM72XX_WM_IOCTL_H__
15#define __GDM72XX_WM_IOCTL_H__
16
Sage Ahn247e9cf2012-05-15 13:20:36 +090017#if !defined(__KERNEL__)
18#include <net/if.h>
19#endif
20
21#define NETLINK_WIMAX 31
22
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080023#define SIOCWMIOCTL SIOCDEVPRIVATE
Sage Ahn247e9cf2012-05-15 13:20:36 +090024
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080025#define SIOCG_DATA 0x8D10
26#define SIOCS_DATA 0x8D11
Sage Ahn247e9cf2012-05-15 13:20:36 +090027
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
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080038#define SIOC_DATA_MAX 16
Sage Ahn247e9cf2012-05-15 13:20:36 +090039
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 {
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080071 int m_status; /*main status*/
72 int c_status; /*connection status*/
73 int d_status; /*oma-dm status*/
Sage Ahn247e9cf2012-05-15 13:20:36 +090074};
75
76struct data_s {
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080077 int size;
Sage Ahn247e9cf2012-05-15 13:20:36 +090078 void *buf;
79};
80
81struct wm_req_s {
82 union {
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080083 char ifrn_name[IFNAMSIZ];
Sage Ahn247e9cf2012-05-15 13:20:36 +090084 } ifr_ifrn;
Sage Ahn247e9cf2012-05-15 13:20:36 +090085 unsigned short cmd;
Sage Ahn247e9cf2012-05-15 13:20:36 +090086 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
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080093#define ifr_name ifr_ifrn.ifrn_name
Sage Ahn247e9cf2012-05-15 13:20:36 +090094#endif
95
Ben Chanbbd500d2014-06-30 22:13:17 -070096#endif /* __GDM72XX_WM_IOCTL_H__ */