BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libsmack)
BuildRequires: pkgconfig(pkgmgr-installer)
+BuildRequires: pkgconfig(capi-system-resource)
Requires(post): /sbin/ldconfig
Requires(post): /usr/bin/systemctl
%{_libdir}/*.so
%{_libdir}/pkgconfig/liblaunchpad.pc
%{_libdir}/pkgconfig/liblaunchpad-hydra.pc
-
*/
#define _GNU_SOURCE
+#include <cpu-boosting.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#define LOADERS_PATH "loaders"
#define APP_DEFINED_LOADER_INFO_PATH OPT_SHARE_PATH "/" LOADERS_PATH
#define COMMON_LOADER_NAME "common-loader1"
+#define LAUNCHPAD_PROCESS_NAME "launchpad-process-pool"
#define LAUNCHER_INFO_PATH LOADER_INFO_PATH
#define REGULAR_UID_MIN 5000
}
if (pid == 0) {
+ resource_pid_t resource_st = {
+ pid = getpid(),
+ };
+ ret = resource_clear_cpu_boosting(resource_st);
+ if (ret != 0)
+ _E("Failed to clear cpu boosting. error(%d)", ret);
+
_W("security_manager_prepare_app_candidate ++");
ret = security_manager_prepare_app_candidate();
_W("security_manager_prepare_app_candidate --");
strncpy(ptr, app_type, size);
ptr += len;
size -= len;
- if (iter) {
+ if (iter) {
(*ptr++) = ' ';
size--;
}
- }
+ }
}
static void __add_slot_from_info(gpointer data, gpointer user_data)
info->type = LAUNCHPAD_LOADER_TYPE_USER + user_slot_offset;
user_slot_offset++;
- __get_app_type_string(info, buf, sizeof(buf));
- _I("candidate slot. app-type(%s) loader-type(%d)",
+ __get_app_type_string(info, buf, sizeof(buf));
+ _I("candidate slot. app-type(%s) loader-type(%d)",
buf, info->type);
_print_hwc_log("candidate slot. app-type(%s) loader-type(%d)",
buf, info->type);
- }
+ }
}
static int __add_default_slots(void)
static int __before_loop(int argc, char **argv)
{
int ret;
+ resource_pid_t resource_st = {
+ .pid = getpid(),
+ };
_print_hwc_log("%s(%d): START", __FUNCTION__, __LINE__);
ret = __sequencer_init();
_log_init();
_print_hwc_log("%s(%d): END", __FUNCTION__, __LINE__);
+ ret = resource_register_cpu_inheritance_destination(
+ LAUNCHPAD_PROCESS_NAME, resource_st);
+ if (ret != 0) {
+ _E("Failed to register cpu inheritance destination. error(%d)",
+ ret);
+ }
+
return 0;
}
static void __after_loop(void)
{
+ int ret;
+
+ ret = resource_unregister_cpu_inheritance_destination(
+ LAUNCHPAD_PROCESS_NAME);
+ if (ret != 0) {
+ _E("Failed to unregister cpu inheritance destination. "
+ "error(%d)", ret);
+ }
+
_log_fini();
_memory_monitor_fini();
__unregister_vconf_events();