2cce5ee868ed9bee48e0978fb53654c8b529bc99
[platform/core/connectivity/net-config.git] / include / util.h
1 /*
2  * Network Configuration Module
3  *
4  * Copyright (c) 2000 - 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 #ifndef __NETCONFIG_UTIL_H__
21 #define __NETCONFIG_UTIL_H__
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #include <glib.h>
28
29 #include "wifi.h"
30 #include "plugin.h"
31
32 #define NETCONFIG_TIZEN_SYSTEM_ENV              "/run/tizen-system-env"
33
34 #define MAX_SIZE_ERROR_BUFFER 256
35
36 GKeyFile *netconfig_keyfile_load(const char *pathname);
37 void netconfig_keyfile_save(GKeyFile *keyfile, const char *pathname);
38
39 void netconfig_start_timer_seconds(guint secs,
40                 gboolean(*callback) (gpointer), void *user_data, guint *timer_id);
41 void netconfig_start_timer(guint msecs,
42                 gboolean(*callback) (gpointer), void *user_data, guint *timer_id);
43 void netconfig_stop_timer(guint *timer_id);
44
45 void netconfig_wifi_enable_device_picker_test(void);
46 void netconfig_wifi_device_picker_service_start(void);
47 void netconfig_wifi_device_picker_service_stop(void);
48
49 gboolean netconfig_is_wifi_direct_on(void);
50 gboolean netconfig_is_wifi_tethering_on(void);
51
52 gboolean netconfig_interface_up(const char *ifname);
53 gboolean netconfig_interface_down(const char *ifname);
54
55 int netconfig_execute_file(const char *file_path, char *const args[], char *const env[]);
56 int netconfig_execute_clatd(const char *file_path, char *const args[]);
57 int netconfig_add_route_ipv6(gchar *ip_addr, gchar *interface, gchar *gateway, unsigned char prefix_len);
58 int netconfig_del_route_ipv6(gchar *ip_addr, gchar *interface, gchar *gateway, unsigned char prefix_len);
59 int netconfig_add_route_ipv4(gchar *ip_addr, gchar *subnet, gchar *interface, gint address_family);
60 int netconfig_del_route_ipv4(gchar *ip_addr, gchar *subnet, gchar *interface, gint address_family);
61
62 gboolean handle_launch_direct(Wifi *wifi, GDBusMethodInvocation *context);
63 gboolean handle_launch_mdns(Network *object, GDBusMethodInvocation *context,
64                                                         gchar *name);
65
66 gboolean netconfig_send_notification_to_net_popup(const char * noti, const char * data);
67 int netconfig_send_message_to_net_popup(const char *title,
68                 const char *content, const char *type, const char *ssid);
69 int netconfig_send_restriction_to_net_popup(const char *title,
70                 const char *type, const char *restriction);
71 void netconfig_set_system_event(int sys_evt, int evt_key, int evt_val);
72 void netconfig_set_vconf_int(const char * key, int value);
73 void netconfig_set_vconf_str(const char * key, const char * value);
74 int netconfig_vconf_get_int(const char * key, int *value);
75 int netconfig_vconf_get_bool(const char * key, int *value);
76 char* netconfig_get_env(const char *key);
77 void netconfig_set_mac_address_from_file(void);
78
79 void __netconfig_pop_wifi_connected_poppup(const char *ssid);
80 void netconfig_plugin_init();
81 void netconfig_plugin_deinit();
82 gboolean netconfig_get_headed_plugin_flag();
83
84 #ifdef __cplusplus
85 }
86 #endif
87
88 typedef enum {
89         TIZEN_PROFILE_UNKNOWN = 0,
90         TIZEN_PROFILE_MOBILE = 0x1,
91         TIZEN_PROFILE_WEARABLE = 0x2,
92         TIZEN_PROFILE_TV = 0x4,
93         TIZEN_PROFILE_IVI = 0x8,
94         TIZEN_PROFILE_COMMON = 0x10,
95 } tizen_profile_t;
96 extern tizen_profile_t _get_tizen_profile();
97
98 #define TIZEN_TELEPHONY_ENABLE (_get_tizen_profile() == TIZEN_PROFILE_MOBILE)
99 #define TIZEN_WLAN_BOARD_SPRD (_get_tizen_profile() == TIZEN_PROFILE_MOBILE)
100 #define TIZEN_TV (_get_tizen_profile() == TIZEN_PROFILE_TV)
101 #define TIZEN_NTP_ENABLE (_get_tizen_profile() == TIZEN_PROFILE_IVI)
102
103 #endif /* __NETCONFIG_UTIL_H__ */