4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Sungsik Jang <sungsik.jang@samsung.com>, Dongwook Lee <dwmax.lee@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
22 #ifndef __WIFI_DIRECT_INTERNAL_H_
23 #define __WIFI_DIRECT_INTERNAL_H_
28 #define WFD_INVALID_ID -1
31 #define O_NONBLOCK O_NDELAY
32 #endif /** O_NONBLOCK */
35 #ifndef _UINT32_TYPE_H_
36 #define _UINT32_TYPE_H_
37 typedef unsigned int uint32;
38 #endif /** _UINT32_TYPE_H_ */
40 typedef unsigned int ipv4_addr_t;
50 #define WIFI_DIRECT_MAX_SSID_LEN 32
51 #define WIFI_DIRECT_MAX_DEVICE_NAME_LEN 32
52 #define WIFI_DIRECT_WPS_PIN_LEN 8
53 #define WIFI_DIRECT_MAC_ADDRESS_INFO_FILE "/opt/etc/.mac.info"
54 #define WIFI_DIRECT_MAX_SERVICES_LEN 1024
55 #define WIFI_DIRECT_MAX_SERVICE_NAME_LEN 256
57 #define VCONFKEY_IFNAME "memory/private/wifi_direct_manager/p2p_ifname"
58 #define VCONFKEY_LOCAL_IP "memory/private/wifi_direct_manager/p2p_local_ip"
59 #define VCONFKEY_SUBNET_MASK "memory/private/wifi_direct_manager/p2p_subnet_mask"
60 #define VCONFKEY_GATEWAY "memory/private/wifi_direct_manager/p2p_gateway"
64 WIFI_DIRECT_CMD_INVALID,
65 WIFI_DIRECT_CMD_REGISTER,
66 WIFI_DIRECT_CMD_INIT_ASYNC_SOCKET,
67 WIFI_DIRECT_CMD_DEREGISTER,
68 WIFI_DIRECT_CMD_GET_LINK_STATUS,
69 WIFI_DIRECT_CMD_ACTIVATE,
70 WIFI_DIRECT_CMD_DEACTIVATE,
71 WIFI_DIRECT_CMD_START_DISCOVERY,
72 WIFI_DIRECT_CMD_START_DISCOVERY_SPECIFIC_CHANNEL,
73 WIFI_DIRECT_CMD_CANCEL_DISCOVERY,
74 WIFI_DIRECT_CMD_IS_LISTENING_ONLY, // 10
75 WIFI_DIRECT_CMD_GET_DISCOVERY_RESULT,
77 WIFI_DIRECT_CMD_CONNECT,
78 WIFI_DIRECT_CMD_SEND_CONNECT_REQ,
79 WIFI_DIRECT_CMD_CANCEL_CONNECT, // deprecated
80 WIFI_DIRECT_CMD_CANCEL_CONNECTION,
81 WIFI_DIRECT_CMD_REJECT_CONNECTION,
82 WIFI_DIRECT_CMD_DISCONNECT,
83 WIFI_DIRECT_CMD_DISCONNECT_ALL,
84 WIFI_DIRECT_CMD_GET_CONNECTED_PEERS_INFO,
86 WIFI_DIRECT_CMD_CREATE_GROUP, // 20
87 WIFI_DIRECT_CMD_DESTROY_GROUP,
88 WIFI_DIRECT_CMD_IS_GROUPOWNER,
89 WIFI_DIRECT_CMD_IS_AUTONOMOUS_GROUP,
91 WIFI_DIRECT_CMD_GET_SSID,
92 WIFI_DIRECT_CMD_SET_SSID,
93 WIFI_DIRECT_CMD_GET_IP_ADDR,
94 WIFI_DIRECT_CMD_GET_MAC_ADDR,
95 WIFI_DIRECT_CMD_GET_CONFIG,
96 WIFI_DIRECT_CMD_SET_CONFIG,
98 WIFI_DIRECT_CMD_ACTIVATE_PUSHBUTTON, // 30
99 WIFI_DIRECT_CMD_SET_WPS_PIN,
100 WIFI_DIRECT_CMD_GET_WPS_PIN,
101 WIFI_DIRECT_CMD_GENERATE_WPS_PIN,
102 WIFI_DIRECT_CMD_SET_WPA,
103 WIFI_DIRECT_CMD_GET_SUPPORTED_WPS_MODE,
104 WIFI_DIRECT_CMD_GET_LOCAL_WPS_MODE,
105 WIFI_DIRECT_CMD_GET_REQ_WPS_MODE,
106 WIFI_DIRECT_CMD_SET_REQ_WPS_MODE,
108 WIFI_DIRECT_CMD_SET_GO_INTENT,
109 WIFI_DIRECT_CMD_GET_GO_INTENT, // 40
110 WIFI_DIRECT_CMD_SET_MAX_CLIENT,
111 WIFI_DIRECT_CMD_GET_MAX_CLIENT,
112 WIFI_DIRECT_CMD_SET_AUTOCONNECTION_MODE,
113 WIFI_DIRECT_CMD_IS_AUTOCONNECTION_MODE,
114 WIFI_DIRECT_CMD_IS_DISCOVERABLE,
116 WIFI_DIRECT_CMD_GET_OPERATING_CHANNEL,
117 WIFI_DIRECT_CMD_ACTIVATE_PERSISTENT_GROUP,
118 WIFI_DIRECT_CMD_DEACTIVATE_PERSISTENT_GROUP,
119 WIFI_DIRECT_CMD_IS_PERSISTENT_GROUP_ACTIVATED,
120 WIFI_DIRECT_CMD_GET_PERSISTENT_GROUP_INFO, // 50
121 WIFI_DIRECT_CMD_REMOVE_PERSISTENT_GROUP,
122 WIFI_DIRECT_CMD_GET_DEVICE_NAME,
123 WIFI_DIRECT_CMD_SET_DEVICE_NAME,
125 WIFI_DIRECT_CMD_SET_OEM_LOGLEVEL,
126 WIFI_DIRECT_CMD_GET_PEER_INFO,
127 WIFI_DIRECT_CMD_SET_PASSPHRASE,
128 WIFI_DIRECT_CMD_GET_PASSPHRASE,
129 WIFI_DIRECT_CMD_SET_AUTOCONNECTION_PEER,
131 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
132 WIFI_DIRECT_CMD_REGISTER_LOCAL_SERVICE,
133 WIFI_DIRECT_CMD_DEREGISTER_LOCAL_SERVICE,
134 WIFI_DIRECT_CMD_START_SERVICE_DISCOVERY,
135 WIFI_DIRECT_CMD_CANCEL_SERVICE_DISCOVERY, //60
137 WIFI_DIRECT_CMD_REGISTER_SERVICE,
138 WIFI_DIRECT_CMD_DEREGISTER_SERVICE,
139 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
141 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
142 WIFI_DIRECT_CMD_INIT_MIRACAST,
143 WIFI_DIRECT_CMD_INIT_DISPLAY,
144 WIFI_DIRECT_CMD_DEINIT_DISPLAY,
145 WIFI_DIRECT_CMD_SET_DISPLAY,
146 WIFI_DIRECT_CMD_SET_DISPLAY_AVAILABILITY,
147 WIFI_DIRECT_CMD_GET_PEER_DISPLAY_TYPE,
148 WIFI_DIRECT_CMD_GET_PEER_DISPLAY_AVAILABILITY,
149 WIFI_DIRECT_CMD_GET_PEER_DISPLAY_HDCP,
150 WIFI_DIRECT_CMD_GET_PEER_DISPLAY_PORT,
151 WIFI_DIRECT_CMD_GET_PEER_DISPLAY_THROUGHPUT,
152 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
160 * Wi-Fi Direct client event for IPC
164 WIFI_DIRECT_CLI_EVENT_INVALID = -1, /**< */
166 WIFI_DIRECT_CLI_EVENT_ACTIVATION, /**< */
167 WIFI_DIRECT_CLI_EVENT_DEACTIVATION, /**< */
169 WIFI_DIRECT_CLI_EVENT_DISCOVER_START, /**< 80211 scan*/
170 WIFI_DIRECT_CLI_EVENT_DISCOVER_START_LISTEN_ONLY, /**< listen only mode*/
171 WIFI_DIRECT_CLI_EVENT_DISCOVER_START_SEARCH_LISTEN, /**< search, listen*/
172 WIFI_DIRECT_CLI_EVENT_DISCOVER_END, /**< */
173 WIFI_DIRECT_CLI_EVENT_DISCOVER_FOUND_PEERS, /**< */
175 WIFI_DIRECT_CLI_EVENT_CONNECTION_START, /**< */
176 WIFI_DIRECT_CLI_EVENT_CONNECTION_REQ, /**< */
177 WIFI_DIRECT_CLI_EVENT_CONNECTION_RSP, /**< */
178 WIFI_DIRECT_CLI_EVENT_CONNECTION_WPS_REQ, /**< */
180 WIFI_DIRECT_CLI_EVENT_DISCONNECTION_RSP, /**< */
181 WIFI_DIRECT_CLI_EVENT_DISCONNECTION_IND, /**< */
182 WIFI_DIRECT_CLI_EVENT_DISASSOCIATION_IND, /**< */
184 WIFI_DIRECT_CLI_EVENT_GROUP_CREATE_RSP, /**< */
185 WIFI_DIRECT_CLI_EVENT_GROUP_DESTROY_RSP, /**< */
187 WIFI_DIRECT_CLI_EVENT_IP_LEASED_IND, /**< */
189 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
190 WIFI_DIRECT_CLI_EVENT_SERVICE_DISCOVERY_STARTED,
191 WIFI_DIRECT_CLI_EVENT_SERVICE_DISCOVERY_FOUND,
192 WIFI_DIRECT_CLI_EVENT_SERVICE_DISCOVERY_FINISHED,
193 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
195 WIFI_DIRECT_CLI_EVENT_MAX,
196 } wfd_client_event_e;
199 * Wi-Fi Direct configuration data structure for IPC
203 char device_name[WIFI_DIRECT_MAX_DEVICE_NAME_LEN + 1];
205 wifi_direct_wps_type_e wps_config;
208 int group_owner_intent;
209 bool want_persistent_group;
211 bool auto_connection;
212 wifi_direct_primary_device_type_e primary_dev_type;
213 wifi_direct_secondary_device_type_e secondary_dev_type;
218 * Wi-Fi Direct buffer structure to store result of peer discovery for IPC
222 char device_name[WIFI_DIRECT_MAX_DEVICE_NAME_LEN + 1];
223 unsigned char mac_address[6];
224 unsigned char intf_address[6];
228 bool is_persistent_go;
229 unsigned int category;
230 unsigned int subcategory;
232 unsigned int services;
234 unsigned int wps_device_pwd_id;
235 unsigned int wps_cfg_methods;
239 } wfd_discovery_entry_s;
243 * Wi-Fi Direct buffer structure to store information of connected peer
247 char device_name[WIFI_DIRECT_MAX_DEVICE_NAME_LEN + 1];
248 unsigned char ip_address[4];
249 unsigned char mac_address[6];
250 unsigned char intf_address[6];
253 unsigned short category;
254 unsigned short subcategory;
256 unsigned int services;
260 } wfd_connected_peer_info_s;
265 char ssid[WIFI_DIRECT_MAX_SSID_LEN + 1];
266 unsigned char go_mac_address[6];
267 } wfd_persistent_group_info_s;
274 unsigned char mac_addr[6];
275 } wifi_direct_client_request_data_s;
280 wifi_direct_cmd_e cmd;
282 unsigned int cmd_data_len;
283 wifi_direct_client_request_data_s data;
284 } wifi_direct_client_request_s;
288 wifi_direct_cmd_e cmd;
289 wifi_direct_error_e result;
295 } wifi_direct_client_response_s;
299 wfd_client_event_e event;
300 wifi_direct_error_e error;
304 } wifi_direct_client_noti_s;
307 #endif /* __WIFI_DIRECT_INTERNAL_H_ */