* structure for "cpu" feature data.
*/
typedef struct {
- uint cpuTicks; /**< CPU Usage during the session */
- uint cpuTimeBackground; /**< Time spent in Background State average operating frequency will be used to calculate the power */
- uint cpuTimeForeground; /**< Time spent in Foreground state average operating frequency will be used to calculate the power */
+ uint utime; /**< Total time in milliseconds during which CPU runs in user mode */
+ uint stime; /**< Total time in milliseconds during which CPU runs in kernel mode */
GSList *atm_list; /**< application time map('app_time_map_st1') list for all active applications between start & stop */
GSList *cpu_data_list; /**< list of nodes of 'bm_cpu_st' for next consecutive sessions */
} bm_cpu_st;
}
#endif /* DISABLE_FEATURE_DATA_FROM_GPS_HRM */
-int bm_get_cpu_power_params(int *fg, int *bg)
+int bm_get_cpu_power_params(int *user, int *system)
{
ENTER;
char *contents = NULL;
json_object *jmain = NULL, *jint = NULL, *jvalue = NULL;
- BM_CHECK_INPUT_PARAM(fg);
- BM_CHECK_INPUT_PARAM(bg);
+ BM_CHECK_INPUT_PARAM(user);
+ BM_CHECK_INPUT_PARAM(system);
contents = bm_read_content_from_file(BATTERY_MONITOR_CONFIG_FILE_PATH);
if (!jvalue)
goto END;
- json_object_object_get_ex(jvalue, "p_cpu_fg", &jint);
+ json_object_object_get_ex(jvalue, "p_cpu_user", &jint);
if (!jint)
goto END;
- *fg = json_object_get_int(jint);
+ *user = json_object_get_int(jint);
- json_object_object_get_ex(jvalue, "p_cpu_bg", &jint);
+ json_object_object_get_ex(jvalue, "p_cpu_system", &jint);
if (!jint)
goto END;
- *bg = json_object_get_int(jint);
+ *system = json_object_get_int(jint);
- _DBG("cpu power params - fg[%d], bg[%d]", *fg, *bg);
+ _DBG("cpu power params - user[%d], system[%d]", *user, *system);
ret = BATTERY_MONITOR_ERROR_NONE;
END:
/* creating hash-map with (key, value) = (app-id, data) */
GHashTable *hash = g_hash_table_new_full(g_str_hash, g_str_equal, bm_data_free, bm_atm_st1_free);
- int fgTime = 0;
- int bgTime = 0;
+ int uTime = 0;
+ int sTime = 0;
int onTime = 0;
/* iterating over list for data accumulation */
for (cpu_data_iterator = handle->cpu_data_list; cpu_data_iterator; cpu_data_iterator = cpu_data_iterator->next) {
bm_cpu_st *datalistnode = (bm_cpu_st *)(cpu_data_iterator->data);
- fgTime += datalistnode->cpuTimeForeground;
- bgTime += datalistnode->cpuTimeBackground;
+ uTime += datalistnode->utime;
+ sTime += datalistnode->stime;
cpu_atm_iterator = datalistnode->atm_list;
for ( ; cpu_atm_iterator; cpu_atm_iterator = cpu_atm_iterator->next) {
app_time_map_st1 *cpu_atm_node = (app_time_map_st1 *)cpu_atm_iterator->data;
}
}
/* Read standard Rated Values from Device Spec File/Power Profile File */
- int sP_power_cpu_fg = 0, sP_power_cpu_bg = 0;
+ int sP_power_cpu_user = 0, sP_power_cpu_system = 0;
- ret_val = bm_get_cpu_power_params(&sP_power_cpu_fg, &sP_power_cpu_bg);
+ ret_val = bm_get_cpu_power_params(&sP_power_cpu_user, &sP_power_cpu_system);
if (ret_val != BATTERY_MONITOR_ERROR_NONE)
_ERR("failed to get cpu power params");
- _DBG("received cpu power params - fg[%d]\n, bg[%d]\n", sP_power_cpu_fg, sP_power_cpu_bg);
+ _DBG("received cpu power params - user[%d]\n, system[%d]\n", sP_power_cpu_user, sP_power_cpu_system);
/* CPU power consumption Level - 1 at the Resource Level */
- int P_power_cpu = 0, P_power_fg = 0, P_power_bg = 0;
- P_power_fg = ((sP_power_cpu_fg * fgTime));
- P_power_bg = ((sP_power_cpu_bg * bgTime));
- P_power_cpu = P_power_bg + P_power_fg;
+ int P_power_cpu = 0, P_power_user = 0, P_power_system = 0;
+ P_power_user = ((sP_power_cpu_user * uTime));
+ P_power_system = ((sP_power_cpu_system * sTime));
+ P_power_cpu = P_power_user + P_power_system;
- _DBG("Calculated Power for CPU P_power_cpu (%d), P_power_bg (%d), P_power_fg (%d)", P_power_cpu, P_power_bg, P_power_fg);
+ _DBG("Calculated Power for CPU P_power_cpu (%d), P_power_user (%d), P_power_system (%d)", P_power_cpu, P_power_user, P_power_system);
/* CPU power consumption Level - 2 at the Application Level */
GHashTableIter iter;
gpointer key, value;