[wfd-manager]: Sync-up with Tizen 2.4 Profile
[platform/core/connectivity/wifi-direct-manager.git] / include / wifi-direct-util.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 util functions.
22  *
23  * @file                wifi-direct-util.h
24  * @author      Gibyoung Kim (lastkgb.kim@samsung.com)
25  * @version     0.7
26  */
27
28 #ifndef __WIFI_DIRECT_UTIL_H__
29 #define __WIFI_DIRECT_UTIL_H__
30
31 #if !defined TIZEN_TV
32 #define DEFAULT_MAC_FILE_PATH "/opt/etc/.mac.info"
33 #else
34 #define DEFAULT_MAC_FILE_PATH "/sys/class/net/p2p0/address"
35 #endif
36 #define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
37 #define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"
38 #define IP2STR(a) (a)[0], (a)[1], (a)[2], (a)[3]
39 #define IPSTR "%d.%d.%d.%d"
40 #define ZEROIP "0.0.0.0"
41 #define MAC2SECSTR(a) (a)[0], (a)[4], (a)[5]
42 #define MACSECSTR "%02x:%02x:%02x"
43 #define IP2SECSTR(a) (a)[0], (a)[3]
44 #define IPSECSTR "%d..%d"
45
46 #define VCONFKEY_DHCPS_IP_LEASE "memory/private/wifi_direct_manager/dhcp_ip_lease"
47 #define VCONFKEY_DHCPC_SERVER_IP "memory/private/wifi_direct_manager/dhcpc_server_ip"
48 #define VCONFKEY_LOCAL_IP "memory/private/wifi_direct_manager/p2p_local_ip"
49 #define DHCP_DUMP_FILE "/tmp/dhcp-client-table"
50 #define COUNTRY_CODE_FILE "/usr/etc/wifi-direct/ccode.conf"
51 #define MAX_DHCP_DUMP_SIZE 64    // Single lease format: [99:66:dd:00:11:aa 192.168.16.20 00:00:60]
52
53 #define SOCK_FD_MIN 3
54
55 #ifdef USE_DLOG
56 #include <dlog.h>
57
58 #undef LOG_TAG
59 #define LOG_TAG "WIFI_DIRECT_MANAGER"
60
61 #define WDS_LOGV(format, args...) LOGV(format, ##args)
62 #define WDS_LOGD(format, args...) LOGD(format, ##args)
63 #define WDS_LOGI(format, args...) LOGI(format, ##args)
64 #define WDS_LOGW(format, args...) LOGW(format, ##args)
65 #define WDS_LOGE(format, args...) LOGE(format, ##args)
66 #define WDS_LOGF(format, args...) LOGF(format, ##args)
67
68 #define __WDS_LOG_FUNC_ENTER__ LOGD("Enter")
69 #define __WDS_LOG_FUNC_EXIT__ LOGD("Quit")
70
71 #define WDS_SECLOGI(format, args...) SECURE_LOG(LOG_INFO, LOG_TAG, format, ##args)
72 #define WDS_SECLOGD(format, args...) SECURE_LOG(LOG_DEBUG, LOG_TAG, format, ##args)
73
74 #else /* USE_DLOG */
75
76 #define WDS_LOGV(format, args...)
77 #define WDS_LOGD(format, args...)
78 #define WDS_LOGI(format, args...)
79 #define WDS_LOGW(format, args...)
80 #define WDS_LOGE(format, args...)
81 #define WDS_LOGF(format, args...)
82
83 #define __WDS_LOG_FUNC_ENTER__
84 #define __WDS_LOG_FUNC_EXIT__
85
86 #define WDS_SECLOGI(format, args...)
87 #define WDS_SECLOGD(format, args...)
88
89 #endif /* USE_DLOG */
90
91 #if !(__GNUC__ <= 4 && __GNUC_MINOR__ < 8)
92 int wfd_util_get_current_time(unsigned long *cur_time);
93 #endif
94 gboolean wfd_util_execute_file(const char *file_path,   char *const args[], char *const envs[]);
95 int wfd_util_freq_to_channel(int freq);
96 int wfd_util_channel_to_freq(int channel);
97 int wfd_util_get_phone_name(char *phone_name);
98 void wfd_util_set_dev_name_notification();
99 void wfd_util_unset_dev_name_notification();
100 int wfd_util_set_country();
101
102 int wfd_util_check_wifi_state();
103 int wfd_util_check_mobile_ap_state();
104 int wfd_util_wifi_direct_activatable();
105 #if 0
106 int wfd_util_get_wifi_direct_state();
107 unsigned int wfd_util_static_ip_convert_order(unsigned int net_ip);
108 #endif
109 int wfd_util_set_wifi_direct_state(int state);
110 int wfd_util_get_local_dev_mac(unsigned char *dev_mac);
111 int wfd_util_start_wifi_direct_popup();
112 int wfd_util_dhcps_start();
113 int wfd_util_dhcps_wait_ip_leased(wfd_device_s *peer);
114 int wfd_util_dhcps_stop();
115 int wfd_util_dhcpc_start(wfd_device_s *peer);
116 int wfd_util_dhcpc_stop();
117 int wfd_util_dhcpc_get_ip(char *ifname, unsigned char *ip_addr, int is_IPv6);
118 int wfd_util_dhcpc_get_server_ip(unsigned char* ip_addr);
119 int wfd_util_get_local_ip(unsigned char* ip_addr);
120
121 #ifdef CTRL_IFACE_DBUS
122 #ifdef TIZEN_VENDOR_ATH
123 int wfd_util_static_ip_unset(const char *ifname);
124 #endif /* TIZEN_VENDOR_ATH */
125 /*TODO: ODROID Image does not have support libnl-2.0*/
126 //int wfd_util_ip_over_eap_assign(wfd_device_s *peer, const char *ifname);
127 //int wfd_util_ip_over_eap_lease(wfd_device_s *peer);
128 #endif /* CTRL_IFACE_DBUS */
129 #endif /* __WIFI_DIRECT_UTIL_H__ */