4 * Copyright (c) 2000 - 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_
25 #include "wifi-direct.h"
31 #define WFD_INVALID_ID -1
35 #define O_NONBLOCK O_NDELAY
36 #endif /** O_NONBLOCK */
39 #ifndef _UINT32_TYPE_H_
40 #define _UINT32_TYPE_H_
41 typedef unsigned int uint32;
42 #endif /** _UINT32_TYPE_H_ */
44 typedef unsigned int ipv4_addr_t;
54 #define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
55 #define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"
56 #define IP2STR(a) (a)[0], (a)[1], (a)[2], (a)[3]
60 #define IPSTR " %d.%d.%d.%d"
63 #define WIFI_DIRECT_MAX_SSID_LEN 32
64 #define WIFI_DIRECT_WPS_PIN_LEN 8
69 WIFI_DIRECT_CMD_INVALID,
70 WIFI_DIRECT_CMD_REGISTER,
71 WIFI_DIRECT_CMD_INIT_ASYNC_SOCKET,
72 WIFI_DIRECT_CMD_DEREGISTER,
73 WIFI_DIRECT_CMD_ACTIVATE,
74 WIFI_DIRECT_CMD_DEACTIVATE,
75 WIFI_DIRECT_CMD_START_DISCOVERY,
76 WIFI_DIRECT_CMD_CANCEL_DISCOVERY,
77 WIFI_DIRECT_CMD_GET_DISCOVERY_RESULT,
78 WIFI_DIRECT_CMD_GET_LINK_STATUS,
79 WIFI_DIRECT_CMD_CONNECT,
80 WIFI_DIRECT_CMD_DISCONNECT_ALL,
81 WIFI_DIRECT_CMD_CREATE_GROUP,
82 WIFI_DIRECT_CMD_IS_GROUPOWNER,
83 WIFI_DIRECT_CMD_GET_SSID,
84 WIFI_DIRECT_CMD_SET_SSID,
85 WIFI_DIRECT_CMD_GET_IP_ADDR,
86 WIFI_DIRECT_CMD_GET_CONFIG,
87 WIFI_DIRECT_CMD_SET_CONFIG,
88 WIFI_DIRECT_CMD_SEND_PROVISION_DISCOVERY_REQ,
89 WIFI_DIRECT_CMD_SEND_CONNECT_REQ,
90 WIFI_DIRECT_CMD_ACTIVATE_PUSHBUTTON,
91 WIFI_DIRECT_CMD_SET_WPS_PIN,
92 WIFI_DIRECT_CMD_GET_WPS_PIN,
93 WIFI_DIRECT_CMD_GENERATE_WPS_PIN,
94 WIFI_DIRECT_CMD_GET_INCOMMING_PEER_INFO,
95 WIFI_DIRECT_CMD_SET_WPA,
96 WIFI_DIRECT_CMD_GET_SUPPORTED_WPS_MODE,
97 WIFI_DIRECT_CMD_GET_CONNECTED_PEERS_INFO,
98 WIFI_DIRECT_CMD_CANCEL_GROUP,
99 WIFI_DIRECT_CMD_DISCONNECT,
100 WIFI_DIRECT_CMD_GET_GO_INTENT,
101 WIFI_DIRECT_CMD_GET_DEVICE_MAC,
102 WIFI_DIRECT_CMD_IS_AUTONOMOUS_GROUP,
104 WIFI_DIRECT_CMD_SET_OEM_LOGLEVEL,
110 * Wi-Fi Direct client event for IPC
114 WIFI_DIRECT_CLI_EVENT_INVALID = -1, /**< */
116 WIFI_DIRECT_CLI_EVENT_ACTIVATION, /**< */
117 WIFI_DIRECT_CLI_EVENT_DEACTIVATION, /**< */
119 WIFI_DIRECT_CLI_EVENT_DISCOVER_START, /**< 80211 scan*/
120 WIFI_DIRECT_CLI_EVENT_DISCOVER_START_LISTEN_ONLY, /**< listen only mode*/
121 WIFI_DIRECT_CLI_EVENT_DISCOVER_START_SEARCH_LISTEN, /**< search, listen*/
122 WIFI_DIRECT_CLI_EVENT_DISCOVER_END, /**< */
123 WIFI_DIRECT_CLI_EVENT_DISCOVER_FOUND_PEERS, /**< */
125 WIFI_DIRECT_CLI_EVENT_CONNECTION_START, /**< */
126 WIFI_DIRECT_CLI_EVENT_CONNECTION_REQ, /**< */
127 WIFI_DIRECT_CLI_EVENT_CONNECTION_RSP, /**< */
128 WIFI_DIRECT_CLI_EVENT_CONNECTION_WPS_REQ, /**< */
130 WIFI_DIRECT_CLI_EVENT_DISCONNECTION_RSP, /**< */
131 WIFI_DIRECT_CLI_EVENT_DISCONNECTION_IND, /**< */
132 WIFI_DIRECT_CLI_EVENT_DISASSOCIATION_IND, /**< */
134 WIFI_DIRECT_CLI_EVENT_GROUP_CREATE_RSP, /**< */
135 WIFI_DIRECT_CLI_EVENT_GROUP_DESTROY_RSP, /**< */
137 } wfd_client_event_e;
140 * Wi-Fi Direct configuration data structure for IPC
144 char ssid[WIFI_DIRECT_MAX_SSID_LEN + 1];
146 wifi_direct_wps_cfg_e wps_config;
149 int group_owner_intent;
150 bool want_persistent_group;
151 bool auto_connection;
152 wifi_direct_primary_device_type_e primary_dev_type;
153 wifi_direct_secondary_device_type_e secondary_dev_type;
158 * Wi-Fi Direct buffer structure to store result of peer discovery for IPC
163 char ssid[WIFI_DIRECT_MAX_SSID_LEN + 1];
167 unsigned int services;
168 bool is_persistent_go;
169 char intf_mac_address[6];
170 unsigned int wps_device_pwd_id;
171 unsigned int wps_cfg_methods;
172 unsigned int category;
173 unsigned int subcategory;
174 } wfd_discovery_entry_s;
178 * Wi-Fi Direct buffer structure to store information of connected peer
182 char ssid[WIFI_DIRECT_MAX_SSID_LEN + 1];
184 char intf_mac_address[6];
185 unsigned int services;
187 unsigned short category;
188 } wfd_connected_peer_info_s;
199 } wifi_direct_client_request_data_s;
204 wifi_direct_cmd_e cmd;
206 wifi_direct_client_request_data_s data;
207 } wifi_direct_client_request_s;
211 wifi_direct_cmd_e cmd;
212 wifi_direct_error_e result;
218 } wifi_direct_client_response_s;
222 wfd_client_event_e event;
223 wifi_direct_error_e error;
226 } wifi_direct_client_noti_s;
229 #endif //__WIFI_DIRECT_INTERNAL_H_