[wifi-direct-manager]Merge Tizen 2.4 for sync
[platform/core/connectivity/wifi-direct-manager.git] / oem / wifi-direct-oem.h
1 /*
2  * Network Configuration Module
3  *
4  * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 /**
21  * This file declares wifi direct oem functions and structures.
22  *
23  * @file                wifi-direct-ome.h
24  * @author      Gibyoung Kim (lastkgb.kim@samsung.com)
25  * @version     0.7
26  */
27
28 #ifndef __WIFI_DIRECT_OEM_H__
29 #define __WIFI_DIRECT_OEM_H__
30
31 #define SUPPL_PLUGIN_PATH "/usr/lib/wifi-direct-plugin-wpasupplicant.so"
32
33 #define OEM_MACSTR_LEN 18
34 #define OEM_MACADDR_LEN 6
35 #define OEM_IPADDR_LEN 4
36 #define OEM_PINSTR_LEN 8
37 #define OEM_PASS_PHRASE_LEN 64
38 #define OEM_DEV_NAME_LEN 32
39 #define OEM_IFACE_NAME_LEN 16
40 #define OEM_SERVICE_TYPE_LEN 8
41 #define OEM_QUERY_ID_LEN 15
42 #define OEM_SERVICE_MAX_LEN 1024
43
44 typedef enum {
45         WFD_OEM_SC_SUCCESS = 0,
46         WFD_OEM_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE = 1,
47         WFD_OEM_SC_FAIL_INCOMPATIBLE_PARAMS = 2,
48         WFD_OEM_SC_FAIL_LIMIT_REACHED = 3,
49         WFD_OEM_SC_FAIL_INVALID_PARAMS = 4,
50         WFD_OEM_SC_FAIL_UNABLE_TO_ACCOMMODATE = 5,
51         WFD_OEM_SC_FAIL_PREV_PROTOCOL_ERROR = 6,
52         WFD_OEM_SC_FAIL_NO_COMMON_CHANNELS = 7,
53         WFD_OEM_SC_FAIL_UNKNOWN_GROUP = 8,
54         WFD_OEM_SC_FAIL_BOTH_GO_INTENT_15 = 9,
55         WFD_OEM_SC_FAIL_INCOMPATIBLE_PROV_METHOD = 10,
56         WFD_OEM_SC_FAIL_REJECTED_BY_USER = 11,
57 } wfd_oem_status_code_e;
58
59 typedef enum {
60         WFD_OEM_WPA_STATE_DISCONNECTED,
61         WFD_OEM_WPA_STATE_INTERFACE_DISABLED,
62         WFD_OEM_WPA_STATE_INACTIVE,
63         WFD_OEM_WPA_STATE_SCANNING,
64         WFD_OEM_WPA_STATE_AUTHENTICATING,
65         WFD_OEM_WPA_STATE_ASSOCIATING,
66         WFD_OEM_WPA_STATE_ASSOCIATED,
67         WFD_OEM_WPA_STATE_4WAY_HANDSHAKE,
68         WFD_OEM_WPA_STATE_GROUP_HANDSHAKE,
69         WFD_OEM_WPA_STATE_COMPLETED,
70         WFD_OEM_WPA_STATE_MAX,
71 } ws_wpa_state_type_e;
72
73 typedef enum {
74         WFD_OEM_EVENT_NONE,
75         WFD_OEM_EVENT_DEACTIVATED,
76         WFD_OEM_EVENT_PEER_FOUND,
77         WFD_OEM_EVENT_PEER_DISAPPEARED,
78         WFD_OEM_EVENT_DISCOVERY_FINISHED,
79
80         WFD_OEM_EVENT_PROV_DISC_REQ,    // 5
81         WFD_OEM_EVENT_PROV_DISC_RESP,
82         WFD_OEM_EVENT_PROV_DISC_FAIL,
83
84         WFD_OEM_EVENT_GO_NEG_REQ,
85         WFD_OEM_EVENT_GO_NEG_FAIL,
86         WFD_OEM_EVENT_GO_NEG_DONE,      // 10
87         WFD_OEM_EVENT_WPS_FAIL,
88         WFD_OEM_EVENT_WPS_DONE,
89         WFD_OEM_EVENT_KEY_NEG_FAIL,
90         WFD_OEM_EVENT_KEY_NEG_DONE,
91
92         WFD_OEM_EVENT_CONN_FAIL,        // 15
93         WFD_OEM_EVENT_CONN_DONE,
94
95         WFD_OEM_EVENT_GROUP_CREATED,
96         WFD_OEM_EVENT_GROUP_DESTROYED,
97
98         WFD_OEM_EVENT_INVITATION_REQ,
99         WFD_OEM_EVENT_INVITATION_RES,   // 20
100         WFD_OEM_EVENT_STA_CONNECTED,
101         WFD_OEM_EVENT_STA_DISCONNECTED,
102
103         WFD_OEM_EVENT_CONNECTED,
104         WFD_OEM_EVENT_DISCONNECTED,
105
106         WFD_OEM_EVENT_TERMINATING,      // 25
107
108 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
109         WFD_OEM_EVENT_SERV_DISC_RESP,
110         WFD_OEM_EVENT_SERV_DISC_STARTED,
111 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
112
113         WFD_OEM_EVENT_MAX,
114 } wfd_oem_event_e;
115
116 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
117 typedef enum {
118         WFD_OEM_DISPLAY_TYPE_SOURCE,
119         WFD_OEM_DISPLAY_TYPE_PRISINK,
120         WFD_OEM_DISPLAY_TYPE_SECSINK,
121         WFD_OEM_DISPLAY_TYPE_DUAL,
122 } wfd_oem_display_type_e;
123
124 typedef struct {
125         int type;
126         int availablity;
127         int wsd_support;
128         int tdls_support;
129         int hdcp_support;
130         int sync_support;
131         int port;
132         int max_tput;
133 } wfd_oem_display_s;
134 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
135
136 typedef struct {
137         int age;
138         char dev_name[OEM_DEV_NAME_LEN+1];
139         unsigned char dev_addr[OEM_MACADDR_LEN];
140         unsigned char intf_addr[OEM_MACADDR_LEN];
141         unsigned char go_dev_addr[OEM_MACADDR_LEN];
142         int channel;
143         int dev_role;
144         int config_methods;
145         int pri_dev_type;
146         int sec_dev_type;
147         int dev_flags;
148         int group_flags;
149         int wps_mode;
150 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
151         wfd_oem_display_s display;
152 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
153 } wfd_oem_device_s;
154
155 typedef struct {
156         unsigned char p2p_dev_addr[OEM_MACADDR_LEN];
157         unsigned char p2p_intf_addr[OEM_MACADDR_LEN];
158         char name[OEM_DEV_NAME_LEN + 1];
159         int pri_dev_type;
160         int sec_dev_type;
161         int config_methods;
162         int dev_flags;
163         int group_flags;
164         int dev_role;
165 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
166         wfd_oem_display_s display;
167 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
168         unsigned char p2p_go_addr[OEM_MACADDR_LEN];
169 } wfd_oem_dev_data_s;
170
171 typedef struct {
172         char ssid[OEM_DEV_NAME_LEN+1];
173         unsigned char peer_device_addr[OEM_MACADDR_LEN];
174         unsigned char peer_intf_addr[OEM_MACADDR_LEN];
175         int persistent_group;
176         int wps_mode;
177         int status;
178         int error;
179 } wfd_oem_conn_data_s;
180
181 typedef struct {
182         unsigned char go_dev_addr[OEM_MACADDR_LEN];
183         unsigned char bssid[OEM_MACADDR_LEN];
184         int listen;
185         int status;
186 } wfd_oem_invite_data_s;
187
188 typedef struct {
189         char ssid[OEM_DEV_NAME_LEN+1];
190         int freq;
191         char pass[OEM_PASS_PHRASE_LEN+1];
192         unsigned char go_dev_addr[OEM_MACADDR_LEN];
193 } wfd_oem_group_data_s;
194
195 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
196 typedef enum {
197         WFD_OEM_SERV_STATUS_SUCCESS,
198         WFD_OEM_SERV_STATUS_FAIL,
199 } wfd_oem_serv_status_e;
200
201 typedef enum {
202         WFD_OEM_SERV_TYPE_ALL,
203         WFD_OEM_SERV_TYPE_BTADDR,
204 } wfd_oem_serv_type_e;
205
206 typedef struct {
207         int status;
208         int type;
209         unsigned char data[OEM_MACADDR_LEN];
210         unsigned char value[20];
211 } wfd_oem_service_data_s;
212 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
213
214 typedef struct {
215         int event_id;
216         unsigned char dev_addr[OEM_MACADDR_LEN];        // device address
217         unsigned char intf_addr[OEM_MACADDR_LEN];
218         int wps_mode;
219         char wps_pin[OEM_PINSTR_LEN+1]; // just for DISPLAY
220         char ifname[OEM_IFACE_NAME_LEN+1];
221         int dev_role;
222         int edata_type;
223         void *edata;
224 } wfd_oem_event_s;
225
226 typedef enum {
227         WFD_OEM_EDATA_TYPE_NONE,
228         WFD_OEM_EDATA_TYPE_DEVICE,
229         WFD_OEM_EDATA_TYPE_CONN,
230         WFD_OEM_EDATA_TYPE_INVITE,
231         WFD_OEM_EDATA_TYPE_GROUP,
232         WFD_OEM_EDATA_TYPE_SERVICE,
233         WFD_OEM_EDATA_TYPE_NEW_SERVICE,
234 } ws_event_type_e;
235
236 typedef enum {
237         WFD_OEM_SCAN_MODE_ACTIVE,
238         WFD_OEM_SCAN_MODE_PASSIVE,
239 } wfd_oem_scan_mode_e;
240
241 typedef enum {
242         WFD_OEM_SCAN_TYPE_FULL,
243         WFD_OEM_SCAN_TYPE_SOCIAL,
244         WFD_OEM_SCAN_TYPE_SPECIFIC,
245         WFD_OEM_SCAN_TYPE_CHANNEL1,
246         WFD_OEM_SCAN_TYPE_CHANNEL6,
247         WFD_OEM_SCAN_TYPE_CHANNEL11,
248         WFD_OEM_SCAN_TYPE_GO_FREQ,
249 } wfd_oem_scan_type_e;
250
251 typedef enum {
252         WFD_OEM_WPS_MODE_NONE,
253         WFD_OEM_WPS_MODE_PBC = 0x1,
254         WFD_OEM_WPS_MODE_DISPLAY = 0x2,
255         WFD_OEM_WPS_MODE_KEYPAD = 0x4,
256 } wfd_oem_wps_mode_e;
257
258 #define WFD_OEM_GROUP_FLAG_GROUP_OWNER 0x1
259 #define WFD_OEM_GROUP_FLAG_PERSISTENT_GROUP 0x2
260
261 typedef enum {
262         WFD_OEM_CONN_TYPE_NONE,
263         WFD_OEM_CONN_TYPE_JOIN,
264         WFD_OEM_CONN_TYPE_AUTH,
265         WFD_OEM_CONN_TYPE_PERSISTENT = 0x4,
266 } wfd_oem_conn_flag_e;
267
268 typedef enum {
269         WFD_OEM_DEV_ROLE_NONE,
270         WFD_OEM_DEV_ROLE_GC,
271         WFD_OEM_DEV_ROLE_GO,
272 } wfd_oem_dev_role_e;
273
274 typedef struct {
275         int scan_mode;
276         int scan_time;
277         int scan_type;
278         int freq;
279         int refresh;
280 } wfd_oem_scan_param_s;
281
282 typedef struct {
283         int wps_mode;
284         int conn_flags; // join, auth, persistent
285         int go_intent;
286         int freq;
287         char wps_pin[OEM_PINSTR_LEN+1];
288 } wfd_oem_conn_param_s;
289
290 typedef struct {
291         int net_id;
292         char *ifname;
293         unsigned char go_dev_addr[OEM_MACADDR_LEN];
294 } wfd_oem_invite_param_s;
295
296 typedef enum {
297         WFD_OEM_CONFIG_ATTR_STR_DEVICE_NAME,
298         WFD_OEM_CONFIG_ATTR_STR_SSID_POSTFIX,
299         WFD_OEM_CONFIG_ATTR_STR_COUNTRY,
300         WFD_OEM_CONFIG_ATTR_NUM_GO_INTENT,
301         WFD_OEM_CONFIG_ATTR_NUM_LISTEN_FREQ,
302         WFD_OEM_CONFIG_ATTR_NUM_OPER_FREQ,
303         WFD_OEM_CONFIG_ATTR_NUM_PREF_FREQ,
304         WFD_OEM_CONFIG_ATTR_NUM_PERSIST_RECONN,
305         WFD_OEM_CONFIG_ATTR_NUM_WIFI_DISPLAY,
306         WFD_OEM_CONFIG_ATTR_NUM_P2P_DISABLED,
307         WFD_OEM_CONFIG_ATTR_NUM_MAX_STA,
308         WFD_OEM_CONFIG_ATTR_LIMIT = WFD_OEM_CONFIG_ATTR_NUM_MAX_STA,
309 } wfd_oem_conf_attr_e;
310
311 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
312 typedef enum {
313         WFD_OEM_SERVICE_TYPE_ALL,
314         WFD_OEM_SERVICE_TYPE_BONJOUR,
315         WFD_OEM_SERVICE_TYPE_UPNP,
316         WFD_OEM_SERVICE_TYPE_WS_DISCOVERY,
317         WFD_OEM_SERVICE_TYPE_WIFI_DISPLAY,
318         WFD_OEM_SERVICE_TYPE_BT_ADDR,
319         WFD_OEM_SERVICE_TYPE_CONTACT_INFO,
320         WFD_OEM_SERVICE_TYPE_VENDOR = 0xff,
321 } wfd_oem_service_type_e;
322
323 typedef enum {
324         WFD_OEM_BONJOUR_RDATA_PTR = 0x0c,
325         WFD_OEM_BONJOUR_RDATA_TXT = 0x10,
326 }wfd_oem_bonjour_rdata_type_e;
327
328 typedef struct {
329         /** Device address for which service discovery is requested */
330         char dev_addr[OEM_MACSTR_LEN+1];
331
332         /** service type requested */
333         char service_type[OEM_SERVICE_TYPE_LEN+1];
334
335         /** query identifier returned by wpa_supplicant for each service discovery request */
336         char query_id[OEM_QUERY_ID_LEN+1];
337 } wfd_oem_service_s;
338
339 typedef struct {
340         int protocol;
341         int trans_id;
342         int status;
343         char *str_ptr;
344         union {
345                 struct {
346                         char *version;
347                         char *service;
348                 } upnp;
349                 struct {
350                         char *query;
351                         char *rdata;
352                         wfd_oem_bonjour_rdata_type_e rdata_type;
353                 } bonjour;
354                 struct {
355                         char *data1;
356                         char *data2;
357                 } vendor;
358         } data;
359 } wfd_oem_new_service_s;
360 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
361
362 typedef struct
363 {
364         int network_id;
365         char ssid[OEM_DEV_NAME_LEN + 1];
366         unsigned char go_mac_address[OEM_MACADDR_LEN];
367 } wfd_oem_persistent_group_s;
368
369 typedef int (*wfd_oem_event_cb) (void *user_data, void *event);
370
371 typedef struct _wfd_oem_ops_s {
372         int (*init) (wfd_oem_event_cb event_callback, void *user_data);
373         int (*deinit) (void);
374         int (*activate) (int concurrent);
375         int (*deactivate) (int concurrent);
376         int (*start_scan) (wfd_oem_scan_param_s *param);
377         int (*stop_scan) (void);
378         int (*get_visibility) (int *visibility);
379         int (*set_visibility) (int visibility);
380         int (*get_scan_result) (GList **peers, int *peer_count);
381         int (*get_peer_info) (unsigned char *peer_addr, wfd_oem_device_s **peer);
382         int (*prov_disc_req) (unsigned char *peer_addr, wfd_oem_wps_mode_e wps_mode, int join);
383         int (*connect) (unsigned char *peer_addr, wfd_oem_conn_param_s *param);
384         int (*disconnect) (unsigned char *peer_addr);
385         int (*reject_connection) (unsigned char *peer_addr);
386         int (*cancel_connection) (unsigned char *peer_addr);
387         int (*get_connected_peers) (GList **peers, int *peer_count);
388         int (*wps_start) (unsigned char *peer_addr, int wps_mode, const char *pin);
389         int (*enrollee_start) (unsigned char *peer_addr, int wps_mode, const char *pin);
390         int (*wps_cancel) (void);
391         int (*get_pin) (char *pin);
392         int (*set_pin) (char *pin);
393 //      int (*generate_pin) (char *pin);
394         int (*get_supported_wps_mode) (int *wps_mode);
395         int (*create_group) (int persistent, int freq, const char *passphrase);
396         int (*destroy_group) (const char *ifname);
397         int (*invite) (unsigned char *peer_addr, wfd_oem_invite_param_s *param);
398
399         int (*get_dev_name) (char *dev_name);
400         int (*set_dev_name) (char *dev_name);
401         int (*get_dev_mac) (char *dev_mac);
402         int (*get_dev_type) (int *pri_dev_type, int *sec_dev_type);
403         int (*set_dev_type) (int pri_dev_type, int sec_dev_type);
404         int (*get_go_intent) (int *go_intent);
405         int (*set_go_intent) (int go_intent);
406         int (*set_country) (char *ccode);
407 //      int (*get_country) (char **ccode);
408
409         int (*get_persistent_groups) (wfd_oem_persistent_group_s **groups, int *group_count);
410         int (*remove_persistent_group) (char *ssid, unsigned char *bssid);
411         int (*set_persistent_reconnect) (unsigned char *bssid, int reconnect);
412
413 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
414         int (*start_service_discovery) (unsigned char mac_addr[6], int service_type);
415         int (*cancel_service_discovery) (unsigned char mac_addr[6], int service_type);
416
417         int (*serv_add) (wfd_oem_new_service_s *service);
418         int (*serv_del) (wfd_oem_new_service_s *service);
419         int (*serv_disc_start) (wfd_oem_new_service_s *service);
420         int (*serv_disc_stop) (int handle);
421 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
422
423 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
424         int (*miracast_init) (int enable);
425         int (*set_display) (wfd_oem_display_s *wifi_display);
426 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
427
428         int (*refresh) (void);
429
430 } wfd_oem_ops_s;
431
432 int wfd_oem_init(wfd_oem_ops_s *ops, wfd_oem_event_cb event_callback, void *user_data);
433 int wfd_oem_destroy(wfd_oem_ops_s *ops);
434 int wfd_oem_activate(wfd_oem_ops_s *ops, int concurrent);
435 int wfd_oem_deactivate(wfd_oem_ops_s *ops, int concurrent);
436 int wfd_oem_start_scan(wfd_oem_ops_s *ops, wfd_oem_scan_param_s *param);
437 int wfd_oem_stop_scan(wfd_oem_ops_s *ops);
438 int wfd_oem_get_visibility(wfd_oem_ops_s *ops, int *visibility);
439 int wfd_oem_set_visibility(wfd_oem_ops_s *ops, int visibility);
440 int wfd_oem_get_scan_result(wfd_oem_ops_s *ops, GList **peers, int *peer_count);
441 int wfd_oem_get_peer_info(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_device_s **peer);
442 int wfd_oem_prov_disc_req(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_wps_mode_e wps_mode, int join);
443 int wfd_oem_connect(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_conn_param_s *param);
444 int wfd_oem_disconnect(wfd_oem_ops_s *ops, unsigned char *peer_addr);
445 int wfd_oem_reject_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr);
446 int wfd_oem_cancel_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr);
447 int wfd_oem_get_connected_peers(wfd_oem_ops_s *ops, GList **peers, int *peer_count);
448 int wfd_oem_wps_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin);
449 int wfd_oem_enrollee_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin);
450 int wfd_oem_wps_cancel(wfd_oem_ops_s *ops);
451 int wfd_oem_get_pin(wfd_oem_ops_s *ops, char *pin);
452 int wfd_oem_set_pin(wfd_oem_ops_s *ops, char *pin);
453 //int wfd_oem_generate_pin(wfd_oem_ops_s *ops, char *pin);
454 int wfd_oem_get_supported_wps_mode(wfd_oem_ops_s *ops, int *wps_mode);
455 int wfd_oem_create_group(wfd_oem_ops_s *ops, int persistent, int freq, const char *passphrase);
456 int wfd_oem_destroy_group(wfd_oem_ops_s *ops, const char *ifname);
457 int wfd_oem_invite(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_invite_param_s *param);
458
459 int wfd_oem_get_dev_name(wfd_oem_ops_s *ops, char *dev_name);
460 int wfd_oem_set_dev_name(wfd_oem_ops_s *ops, char *dev_name);
461 int wfd_oem_get_dev_mac(wfd_oem_ops_s *ops, char *dev_mac);
462 int wfd_oem_get_dev_type(wfd_oem_ops_s *ops, int *pri_dev_type, int *sec_dev_type);
463 int wfd_oem_set_dev_type(wfd_oem_ops_s *ops, int priv_dev_type, int sec_dev_type);
464 int wfd_oem_get_go_intent(wfd_oem_ops_s *ops, int *go_intent);
465 int wfd_oem_set_go_intent(wfd_oem_ops_s *ops, int go_intent);
466 int wfd_oem_set_country(wfd_oem_ops_s *ops, char *ccode);
467
468 int wfd_oem_get_persistent_groups(wfd_oem_ops_s *ops, wfd_oem_persistent_group_s **groups, int *group_count);
469 int wfd_oem_remove_persistent_group(wfd_oem_ops_s *ops, char *ssid, unsigned char *bssid);
470 int wfd_oem_set_persistent_reconnect(wfd_oem_ops_s *ops, unsigned char *bssid, int reconnect);
471
472 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
473 int wfd_oem_start_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type);
474 int wfd_oem_cancel_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type);
475
476 int wfd_oem_serv_add(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
477 int wfd_oem_serv_del(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
478 int wfd_oem_serv_disc_start(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
479 int wfd_oem_serv_disc_stop(wfd_oem_ops_s *ops, int handle);
480 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
481
482 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
483 int wfd_oem_miracast_init(wfd_oem_ops_s *ops, int enable);
484 int wfd_oem_set_display(wfd_oem_ops_s *ops, wfd_oem_display_s *wifi_display);
485 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
486
487 int wfd_oem_refresh(wfd_oem_ops_s *ops);
488
489 #endif /* __WIFI_DIRECT_OEM_H__ */