return state;
}
-static int pass_parse_scenario(struct parse_result *result, void *user_data,
+static int pass_parse_pmqos(struct parse_result *result, void *user_data,
unsigned int index)
{
struct pass_policy *policy = user_data;
- struct pass_scenario_policy *scenario = &policy->scenario;
+ struct pass_pmqos *pmqos = &policy->pmqos;
if (!policy || !result)
return 0;
/* Parse 'PassScenario' section */
if (MATCH(result->section, "PassScenario")) {
if (MATCH(result->name, "pass_scenario_support")) {
- scenario->state = is_supported(result->value);
- if (scenario->state < 0)
+ pmqos->state = is_supported(result->value);
+ if (pmqos->state < 0)
return -EINVAL;
} else if (MATCH(result->name, "pass_num_scenarios")) {
return -EINVAL;
}
- if (num_scenarios > 0 && !scenario->list) {
- scenario->list = calloc(num_scenarios,
+ if (num_scenarios > 0 && !pmqos->scenarios) {
+ pmqos->scenarios = calloc(num_scenarios,
sizeof(struct pass_scenario));
- if (!scenario->list) {
+ if (!pmqos->scenarios) {
_E("cannot allocate memory for Scenario\n");
return -EINVAL;
}
- scenario->num_scenarios = num_scenarios;
+ pmqos->num_scenarios = num_scenarios;
}
}
}
- if (scenario->state != PASS_ON)
+ if (pmqos->state != PASS_ON)
return 0;
- if (!scenario->num_scenarios)
+ if (!pmqos->num_scenarios)
return 0;
- if (index > scenario->num_scenarios || index == PASS_UNUSED)
+ if (index > pmqos->num_scenarios || index == PASS_UNUSED)
return 0;
/* Parse 'Scenario' section */
if (MATCH(result->name, "name")) {
- snprintf(scenario->list[index].name, PASS_NAME_LEN, "%s",
+ snprintf(pmqos->scenarios[index].name, PASS_NAME_LEN, "%s",
result->value);
} else if (MATCH(result->name, "support")) {
- scenario->list[index].state = is_supported(result->value);
- if (scenario->list[index].state < 0)
+ pmqos->scenarios[index].state = is_supported(result->value);
+ if (pmqos->scenarios[index].state < 0)
return -EINVAL;
} else if (MATCH(result->name, "min_level")) {
- scenario->list[index].min_level = atoi(result->value);
+ pmqos->scenarios[index].min_level = atoi(result->value);
} else if (MATCH(result->name, "max_level")) {
- scenario->list[index].max_level = atoi(result->value);
+ pmqos->scenarios[index].max_level = atoi(result->value);
}
return 0;
static int pass_load_config(struct parse_result *result, void *user_data)
{
struct pass_policy *policy = user_data;
- struct pass_scenario_policy *scenario = &policy->scenario;
char section_name[BUFF_MAX];
int level = PASS_UNUSED;
int index = PASS_UNUSED;
/* Parsing 'PassScenario' section */
if (MATCH(result->section, "PassScenario")) {
- ret = pass_parse_scenario(result, user_data, PASS_UNUSED);
+ ret = pass_parse_pmqos(result, user_data, PASS_UNUSED);
if (ret < 0) {
_E("cannot parse 'PassScenario' section\n");
return ret;
}
/* Parsing 'Scenario' section */
- for (index = 0; index < scenario->num_scenarios; index++) {
+ for (index = 0; index < policy->pmqos.num_scenarios; index++) {
ret = snprintf(section_name, BUFF_MAX, "Scenario%d", index);
if (MATCH(result->section, section_name)) {
- ret = pass_parse_scenario(result, user_data, index);
+ ret = pass_parse_pmqos(result, user_data, index);
if (ret < 0) {
_E("cannot parse 'Scenario' section\n");
return ret;
int ret;
policy->state = PASS_UNUSED;
- policy->scenario.state = PASS_UNUSED;
+ policy->pmqos.state = PASS_UNUSED;
policy->state = 0;
policy->gov_type = 0;
if (policy->state == PASS_UNUSED)
return -EINVAL;
- if (policy->scenario.state == PASS_UNUSED)
+ if (policy->pmqos.state == PASS_UNUSED)
_W("%s don't include the list of pass-scenario\n");
- else if (policy->scenario.state == PASS_OFF)
+ else if (policy->pmqos.state == PASS_OFF)
_I("cannot use pass-scenario");
return 0;
policy->levels = NULL;
}
- if (policy->scenario.list) {
- free(policy->scenario.list);
- policy->scenario.list = NULL;
+ if (policy->pmqos.scenarios) {
+ free(policy->pmqos.scenarios);
+ policy->pmqos.scenarios = NULL;
}
- policy->scenario.num_scenarios = 0;
+ policy->pmqos.num_scenarios = 0;
}
static int pass_parse_resource_data(struct parse_result *result,
if (!policy)
return false;
- if (!policy->scenario.list)
+ if (!policy->pmqos.scenarios)
return false;
- if (policy->scenario.state != PASS_ON)
+ if (policy->pmqos.state != PASS_ON)
return false;
return true;
}
}
-static int find_scenario_index(struct pass_scenario_policy *scenario,
- char *name)
+static int find_scenario_index(struct pass_pmqos *pmqos, char *name)
{
int index;
- for (index = 0; index < scenario->num_scenarios; index++)
- if (MATCH(scenario->list[index].name, name))
+ for (index = 0; index < pmqos->num_scenarios; index++)
+ if (MATCH(pmqos->scenarios[index].name, name))
return index;
return -EINVAL;
{
struct pass_resource *res;
struct pass_conf_data *cdata;
- struct pass_scenario_policy *scenario;
+ struct pass_pmqos *pmqos;
struct pass_scenario *scn = NULL;
enum pass_state locked = PASS_UNUSED;
char name[PASS_NAME_LEN] = {""};
res = to_pass_resource(policy);
cdata = &res->cdata;
- scenario = &policy->scenario;
+ pmqos = &policy->pmqos;
/*
* Parse scenario name(data) whether to include 'Lock' or 'Unlock'
* string and divide correct scenario name.
*/
locked = is_pmqos_locked(data, name);
- index = find_scenario_index(scenario, name);
+ index = find_scenario_index(pmqos, name);
if (index < 0) {
_W("Unknown scenario (%s) for '%s' resource\n",
name, cdata->res_name);
return -EINVAL;
}
- scn = &scenario->list[index];
+ scn = &pmqos->scenarios[index];
/* Check the state of each scenario whether to support or not */
if (scn->state != PASS_ON) {
scn->locked = locked;
if (scn->locked) {
- if (scenario->num_locked_scenarios == 0)
- new_level = scenario->init_level = policy->curr_level;
+ if (pmqos->num_locked_scenarios == 0)
+ new_level = pmqos->init_level = policy->curr_level;
else
- new_level = scenario->curr_level;
- min_level = MAX(scn->min_level, scenario->min_level);
- max_level = MAX(scn->max_level, scenario->max_level);
+ new_level = pmqos->curr_level;
+ min_level = MAX(scn->min_level, pmqos->min_level);
+ max_level = MAX(scn->max_level, pmqos->max_level);
if (new_level < min_level)
new_level = min_level;
else if (new_level > max_level)
new_level = scn->max_level;
- scenario->curr_level = new_level;
- scenario->min_level = min_level;
- scenario->max_level = max_level;
+ pmqos->curr_level = new_level;
+ pmqos->min_level = min_level;
+ pmqos->max_level = max_level;
- scenario->num_locked_scenarios++;
+ pmqos->num_locked_scenarios++;
} else {
- scenario->num_locked_scenarios--;
+ pmqos->num_locked_scenarios--;
- if (scenario->num_locked_scenarios == 0) {
- new_level = scenario->init_level;
+ if (pmqos->num_locked_scenarios == 0) {
+ new_level = pmqos->init_level;
min_level = policy->default_min_level;
max_level = policy->default_max_level;
- scenario->curr_level = 0;
- scenario->min_level = 0;
- scenario->max_level = 0;
+ pmqos->curr_level = 0;
+ pmqos->min_level = 0;
+ pmqos->max_level = 0;
} else {
- new_level = scenario->curr_level;
- min_level = scenario->min_level;
- max_level = scenario->max_level;
+ new_level = pmqos->curr_level;
+ min_level = pmqos->min_level;
+ max_level = pmqos->max_level;
}
}
_I("Lock '%s' scenario for '%s' resource\n",
name, cdata->res_name);
- scenario->list[index].locked_time = get_time_ms();
+ pmqos->scenarios[index].locked_time = get_time_ms();
} else {
_I("UnLock '%s' scenario for '%s' resource (%lldms)\n",
name, cdata->res_name,
- (get_time_ms() - scenario->list[index].locked_time));
+ (get_time_ms() - pmqos->scenarios[index].locked_time));
- scenario->list[index].locked_time = 0;
+ pmqos->scenarios[index].locked_time = 0;
}
return 0;