From cd457594aa1a3f631f4d78a365c7263667ff76f1 Mon Sep 17 00:00:00 2001 From: Tomasz Marciniak Date: Fri, 26 Jun 2015 09:43:37 +0200 Subject: [PATCH] [Systeminfo] Read frequency for emulator from different file. [Verification] Code compiles without errors. TCT pass rate: Emulator: 100% (258/258/0/0/0) Target: 100% (289/289/0/0/0) Change-Id: I6fd6f41acbb9bf8bc63a4e58585f61e8a2b0184a Signed-off-by: Tomasz Marciniak --- packaging/webapi-plugins.spec | 8 +++++++ src/systeminfo/systeminfo-utils.cpp | 34 ++++++++++++++++++++++++----- src/systeminfo/systeminfo.gyp | 3 +++ 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/packaging/webapi-plugins.spec b/packaging/webapi-plugins.spec index af0d61e1..03a4c5c9 100755 --- a/packaging/webapi-plugins.spec +++ b/packaging/webapi-plugins.spec @@ -11,6 +11,13 @@ Group: Development/Libraries Summary: Tizen Web APIs implemented Source0: %{name}-%{version}.tar.gz +%ifarch %{arm} +# ARM +%define tizen_is_emulator 0 +%else +# I586 +%define tizen_is_emulator 1 +%endif #################################################################### # Mobile Profile : Redwood(SM-Z910F), KIRAN(Z130H) # @@ -461,6 +468,7 @@ GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_o GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=x11" # feature flags +GYP_OPTIONS="$GYP_OPTIONS -Dtizen_is_emulator=%{?tizen_is_emulator}" GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_feature_account_support}" GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_feature_alarm_support}" GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_feature_application_support}" diff --git a/src/systeminfo/systeminfo-utils.cpp b/src/systeminfo/systeminfo-utils.cpp index a686fed0..e4fd805e 100644 --- a/src/systeminfo/systeminfo-utils.cpp +++ b/src/systeminfo/systeminfo-utils.cpp @@ -3238,17 +3238,41 @@ PlatformResult SystemInfoDeviceCapability::GetPlatformCoreCpuFrequency(int* retu LoggerD("Entered"); std::string freq; - std::ifstream cpuinfo_max_freq("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"); - if (!cpuinfo_max_freq.is_open()) { + std::string file_name; + +#ifdef TIZEN_IS_EMULATOR + file_name = "/proc/cpuinfo"; +#else + file_name = "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"; +#endif + + std::ifstream cpuinfo_freq(file_name); + if (!cpuinfo_freq.is_open()) { LoggerE("Failed to get cpu frequency"); return PlatformResult(ErrorCode::UNKNOWN_ERR, "Unable to open file"); } - getline(cpuinfo_max_freq, freq); - cpuinfo_max_freq.close(); +#ifdef TIZEN_IS_EMULATOR + //get frequency value from cpuinfo file + //example entry for frequency looks like below + //cpu MHz : 3392.046 + std::size_t found; + do { + getline(cpuinfo_freq, freq); + found = freq.find("cpu MHz"); + } while (std::string::npos == found && !cpuinfo_freq.eof()); - LoggerD("cpu frequency : %s", freq.c_str()); + found = freq.find(":"); + if (std::string::npos != found) { + *return_value = std::stoi(freq.substr(found + 2)); + } +#else + getline(cpuinfo_freq, freq); *return_value = std::stoi(freq) / 1000; // unit: MHz +#endif + + cpuinfo_freq.close(); + LoggerD("cpu frequency : %d", *return_value); return PlatformResult(ErrorCode::NO_ERROR); } diff --git a/src/systeminfo/systeminfo.gyp b/src/systeminfo/systeminfo.gyp index 1137ebf4..72441978 100644 --- a/src/systeminfo/systeminfo.gyp +++ b/src/systeminfo/systeminfo.gyp @@ -37,6 +37,9 @@ ] }, }], + ['tizen_is_emulator == 1', { + 'defines': ['TIZEN_IS_EMULATOR'], + }], ], }, ], -- 2.34.1