From 5dbfe12f2f2ad0ebd714ac18b2e1e2cbb24d6455 Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Tue, 22 Oct 2019 12:00:50 +0200 Subject: [PATCH] plugins: Separate freezer module Change-Id: Id5a60a03a93064a8e8666cef682214e750baca50 --- packaging/resourced.spec | 4 +--- src/CMakeLists.txt | 12 +++++------- src/{freezer => common}/freezer-common.c | 10 ++++++++-- src/common/freezer-common.h | 29 +++++++++++++++++++++++++++++ src/freezer/freezer.c | 14 +------------- src/freezer/include/freezer.h | 4 +--- src/proc-stat/proc-main.c | 1 + 7 files changed, 46 insertions(+), 28 deletions(-) rename src/{freezer => common}/freezer-common.c (70%) create mode 100644 src/common/freezer-common.h diff --git a/packaging/resourced.spec b/packaging/resourced.spec index 29de6cd..3d931db 100644 --- a/packaging/resourced.spec +++ b/packaging/resourced.spec @@ -33,7 +33,6 @@ Source0: %{name}-%{version}.tar.gz # Defines for resourced.common variant - see build section for defines for # light variant. -%define freezer_module ON %define heart_module ON %define swap_module ON @@ -130,7 +129,6 @@ pushd build_common %cmake .. -DFULLVER=%{version} \ -DCMAKE_BUILD_TYPE=Release \ -DCPU_MODULE=%{cpu_module} \ - -DFREEZER_MODULE=%{freezer_module} \ -DHEART_MODULE=%{heart_module} \ -DMEMORY_MODULE=%{memory_module} \ -DMEM_STRESS=%{mem_stress} \ @@ -154,7 +152,6 @@ pushd build_light %cmake .. -DFULLVER=%{version} \ -DCMAKE_BUILD_TYPE=Release \ - -DFREEZER_MODULE=OFF \ -DHEART_MODULE=OFF \ -DSWAP_MODULE=OFF \ -DCPU_MODULE=%{cpu_module} \ @@ -251,6 +248,7 @@ fi %manifest resourced.manifest %ghost %{_bindir}/resourced %{plugindir}/libblock.so +%{plugindir}/libfreezer.so %{_libdir}/*.so.* %attr(-,root, root) %{_bindir}/resourced.common %if %{?heart_module} == ON diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6acf7c0..1fcc9e8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -44,13 +44,6 @@ SET(RESOURCED_SHARED_SOURCES ${RESOURCED_SHARED_SOURCES} ${PROC-STAT_SOURCE_DIR}/proc-watchdog.c ) -#freezer module -IF("${FREEZER_MODULE}" STREQUAL "ON") - SET(SOURCES ${SOURCES} ${FREEZER_SOURCE_DIR}/freezer.c) - ADD_DEFINITIONS("-DSYSTEM_LIB_PATH=\"${LIB_INSTALL_DIR}\"") -ELSE() - SET(SOURCES ${SOURCES} ${FREEZER_SOURCE_DIR}/freezer-common.c) -ENDIF() IF("${VIP_AGENT}" STREQUAL "ON") SET(SOURCES ${SOURCES} @@ -142,6 +135,11 @@ TARGET_LINK_LIBRARIES(block resourced-private-api ${RESOURCED_REQUIRE_PKGS_LDFLA INSTALL(TARGETS block DESTINATION ${MAKE_INSTALL_PREFIX}${RD_PLUGIN_PATH}) INSTALL(FILES ${BLOCK_SOURCE_DIR}/block.conf DESTINATION ${RD_CONFIG_PATH}) +ADD_DEFINITIONS("-DFREEZER_DIR=\"${LIB_INSTALL_DIR}\"") +ADD_LIBRARY(freezer MODULE ${FREEZER_SOURCE_DIR}/freezer.c) +TARGET_LINK_LIBRARIES(freezer resourced-private-api ${RESOURCED_REQUIRE_PKGS_LDFLAGS}) +INSTALL(TARGETS freezer DESTINATION ${MAKE_INSTALL_PREFIX}${RD_PLUGIN_PATH}) + ADD_EXECUTABLE(${RD_BINARY_NAME} ${RESOURCED_SOURCE_DIR}/init.c ${RESOURCED_SOURCE_DIR}/main.c diff --git a/src/freezer/freezer-common.c b/src/common/freezer-common.c similarity index 70% rename from src/freezer/freezer-common.c rename to src/common/freezer-common.c index b7c15cf..43b6f92 100644 --- a/src/freezer/freezer-common.c +++ b/src/common/freezer-common.c @@ -26,9 +26,15 @@ #include "trace.h" +/* Freezer cgroup late control setting retrieval */ +int (*resourced_freezer_get_proc_late_control)(void) = NULL; + +/* freezer_proc_get_late_control function defined for freezer module on case */ int resourced_freezer_proc_late_control(void) { - _E("Using dummy definition of freezer_proc_get_late_control"); + if (resourced_freezer_get_proc_late_control) + return resourced_freezer_get_proc_late_control(); + + _E("Using dummy definition of freezer_proc_get_late_control - freezer not loaded"); return FREEZER_LATE_CONTROL_DISABLED; } - diff --git a/src/common/freezer-common.h b/src/common/freezer-common.h new file mode 100644 index 0000000..1fcbd73 --- /dev/null +++ b/src/common/freezer-common.h @@ -0,0 +1,29 @@ +/* + * resourced + * + * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __FREEZER_COMMON_H__ +#define __FREEZER_COMMON_H__ + +extern int (*resourced_freezer_get_proc_late_control)(void); + +/* Freezer cgroup late control setting retrieval */ +int resourced_freezer_proc_late_control(void); + +#endif /* __FREEZER_COMMON_H__ */ + diff --git a/src/freezer/freezer.c b/src/freezer/freezer.c index c55a1e2..f55b96e 100644 --- a/src/freezer/freezer.c +++ b/src/freezer/freezer.c @@ -44,13 +44,11 @@ #include "proc-main.h" #include "freezer.h" -#define FREEZER_MODULE_PATH SYSTEM_LIB_PATH"/libsystem-freezer.so.0" +#define FREEZER_MODULE_PATH FREEZER_DIR"/libsystem-freezer.so.0" static int freezer_init_check; /******************************************** Freezer symbols *************************************************/ -/* Freezer cgroup late control setting retrieval */ -static int (*resourced_freezer_get_proc_late_control)(void) = NULL; /* Freezer suspend status retrieval */ static bool (*resourced_freezer_is_suspended)(void) = NULL; @@ -80,16 +78,6 @@ static int (*resourced_freezer_power_off)(void *data) = NULL; static void *dlopen_handle; /****************************************** Freezer symbols end ***********************************************/ -/* freezer_proc_get_late_control function defined for freezer module on case */ -int resourced_freezer_proc_late_control(void) -{ - if (resourced_freezer_get_proc_late_control) - return resourced_freezer_get_proc_late_control(); - - _E("freezer_get_proc_late_control is not loaded!"); - return 0; -} - /****************************************** Internal symbols **************************************************/ static void resourced_freezer_dbus_method_handler_generic( GDBusMethodInvocation *invocation, GVariant *params) diff --git a/src/freezer/include/freezer.h b/src/freezer/include/freezer.h index f3d0b3e..7ca2b2b 100644 --- a/src/freezer/include/freezer.h +++ b/src/freezer/include/freezer.h @@ -27,6 +27,7 @@ #define __FREEZER_H__ #include +#include "freezer-common.h" /* Freezer dbus signal names */ #define SIGNAL_FREEZER_STATE "FreezerState" @@ -67,8 +68,5 @@ struct freezer_init_data { GSList **resourced_app_list; }; -/* Freezer cgroup late control setting retrieval */ -int resourced_freezer_proc_late_control(void); - #endif /* __FREEZER_H__ */ diff --git a/src/proc-stat/proc-main.c b/src/proc-stat/proc-main.c index eba70de..b384e8d 100644 --- a/src/proc-stat/proc-main.c +++ b/src/proc-stat/proc-main.c @@ -47,6 +47,7 @@ #include "appinfo-list.h" #include "util.h" #include "file-helper.h" +#include "freezer-common.h" #include "config-parser.h" #ifndef gettid -- 2.7.4