f007e99da9cc1799980bb560c2c81605ad7dbf19
[platform/core/api/system-info.git] / include / system_info_private.h
1 /*
2  * Copyright (c) 2011 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17
18 #ifndef __TIZEN_SYSTEM_SYSTEM_INFO_PRIVATE_H__
19 #define __TIZEN_SYSTEM_SYSTEM_INFO_PRIVATE_H__
20
21 #ifdef __cplusplus
22 extern "C"
23 {
24 #endif
25
26 #ifndef API
27 #define API __attribute__ ((visibility("default")))
28 #endif
29
30 #define CPU_INFO_FILE_PATH "/proc/cpuinfo"
31 #define CPU_INFO_MAX_FREQ_PATH "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"
32 #define MAXBUFSIZE 512
33
34 #define PLATFORM_TAG    "platform"
35 #define CUSTOM_TAG              "custom"
36
37 #define BOOL_TYPE       "bool"
38 #define INT_TYPE        "int"
39 #define DBL_TYPE        "double"
40 #define STR_TYPE        "string"
41
42 #define BOARD_CONFIG    "board"
43
44 typedef enum {
45         SYSTEM_INFO_DATA_TYPE_STRING,
46         SYSTEM_INFO_DATA_TYPE_INT,
47         SYSTEM_INFO_DATA_TYPE_DOUBLE,
48         SYSTEM_INFO_DATA_TYPE_BOOL
49 } system_info_data_type_e;
50
51 /**
52  * @brief Enumeration of Mode type
53  */
54 typedef enum {
55         SYSTEM_INFO_MODEL_TYPE_EMULATOR,
56         SYSTEM_INFO_MODEL_TYPE_TARGET
57 } system_info_mode_type_e;
58
59 typedef int (*system_info_get_value_cb) (system_info_key_e key, system_info_data_type_e data_type, void **value);
60
61 system_info_mode_type_e system_info_get_system_info_model_type(void);
62
63 int system_info_ini_get_string(char *ini_file, char *key, char **output);
64 int system_info_get_value_from_xml(char *xml_file_path, char *model, char *id_field, char **value);
65 int system_info_get_value_from_config_xml(char *feature_tag, const char *name_field, char *type_field, char **value);
66
67 int system_info_get_model(system_info_key_e key, system_info_data_type_e data_type, void **value);
68 int system_info_get_tizen_version(system_info_key_e key, system_info_data_type_e data_type, void **value);
69 int system_info_get_platform_name(system_info_key_e key, system_info_data_type_e data_type, void **value);
70 int system_info_get_tizen_version_name(system_info_key_e key, system_info_data_type_e data_type, void **value);
71 int system_info_get_core_cpu_arch(system_info_key_e key, system_info_data_type_e data_type, void **value);
72 int system_info_get_core_cpu_freq(system_info_key_e key, system_info_data_type_e data_type, void **value);
73 int system_info_get_screen_height(system_info_key_e key, system_info_data_type_e data_type, void **value);
74 int system_info_get_screen_width(system_info_key_e key, system_info_data_type_e data_type, void **value);
75 int system_info_get_physical_screen_height(system_info_key_e key, system_info_data_type_e data_type, void **value);
76 int system_info_get_physical_screen_width(system_info_key_e key, system_info_data_type_e data_type, void **value);
77 int system_info_get_manufacturer(system_info_key_e key, system_info_data_type_e data_type, void **value);
78 int system_info_get_build_string(system_info_key_e key, system_info_data_type_e data_type, void **value);
79 int system_info_get_build_date(system_info_key_e key, system_info_data_type_e data_type, void **value);
80 int system_info_get_build_time(system_info_key_e key, system_info_data_type_e data_type, void **value);
81 int system_info_get_tethering_supported(system_info_key_e key, system_info_data_type_e data_type, void **value);
82
83 int system_info_get_file(const char *key, void **value);
84
85 #ifdef __cplusplus
86 }
87 #endif
88
89 #endif /* __TIZEN_SYSTEM_SYSTEM_INFO_PRIVATE_H__ */