Initialize Tizen 2.3
[kernel/api/system-resource.git] / src / common / cpu-common.c
1 /*
2  * resourced
3  *
4  * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 /**
21  * @file cpu-common.c
22  * @desc Implement lowmem API for external module
23  *
24  * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
25  *
26  */
27
28 #include "module.h"
29 #include "resourced.h"
30 #include "cpu-common.h"
31
32 static const struct module_ops *cpu;
33 static int cpu_module;
34
35 void cpu_find_module()
36 {
37         if (!cpu_module) {
38                 cpu = find_module("cpu");
39                 cpu_module = 1;
40         }
41 }
42
43 int cpu_control(enum cpu_control_type type, pid_t pid)
44 {
45         struct cpu_data_type l_data;
46         int ret = RESOURCED_ERROR_NONE;
47
48         if (!cpu) {
49                 cpu_find_module();
50                 if (!cpu)
51                         return ret;
52         }
53
54         l_data.control_type = type;
55         l_data.pid = pid;
56
57         if (cpu->control)
58                 ret = cpu->control(&l_data);
59         return ret;
60 }
61