class ClientRequest {
- static Priority getPriority() {
+ static Priority getPriority(SecurityModuleCall action) {
auto priority = Priority::LOW;
- resource_pid_t proc_data;
- cpu_boosting_level_info_t info;
- proc_data.tid = nullptr;
- proc_data.pid = 0; // query for current TID - array tid_level gets allocated
- if (resource_get_cpu_boosting_level(proc_data, &info) != 0) {
- LogError("resource_get_cpu_boosting_level failed");
+ if (action == SecurityModuleCall::PREPARE_APP) {
+ // highest priority for app launching
+ priority = Priority::HIGHEST;
} else {
- switch (info.tid_level[0]) {
- case CPU_BOOSTING_LEVEL_STRONG:
- priority = Priority::HIGH;
- break;
- case CPU_BOOSTING_LEVEL_MEDIUM:
- priority = Priority::MEDIUM;
- break;
+ resource_pid_t proc_data;
+ cpu_boosting_level_info_t info;
+ proc_data.tid = nullptr;
+ proc_data.pid = 0; // query for current TID - array tid_level gets allocated
+ if (resource_get_cpu_boosting_level(proc_data, &info) != 0) {
+ LogError("resource_get_cpu_boosting_level failed");
+ } else {
+ switch (info.tid_level[0]) {
+ case CPU_BOOSTING_LEVEL_STRONG:
+ priority = Priority::HIGH;
+ break;
+ case CPU_BOOSTING_LEVEL_MEDIUM:
+ priority = Priority::MEDIUM;
+ break;
+ }
+ free(info.tid_level);
}
- free(info.tid_level);
}
return priority;
}
ClientRequest(SecurityModuleCall action)
{
m_buffer.InitForStreaming();
- Serialization::Serialize(m_buffer, underlying(getPriority()));
+ Serialization::Serialize(m_buffer, underlying(getPriority(action)));
Serialization::Serialize(m_buffer, static_cast<int>(action));
}