tizen 2.3 release
[kernel/api/system-resource.git] / src / resourced / main.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 main.c
22  *
23  * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
24  *
25  */
26
27 #include "init.h"
28 #include "macro.h"
29 #include "module-data.h"
30 #include "module.h"
31 #include "proc-main.h"
32 #include "proc-monitor.h"
33 #include "trace.h"
34 #include "version.h"
35
36 #include <Ecore.h>
37 #include <mcheck.h>
38 #include <systemd/sd-daemon.h>
39
40 int main(int argc, char **argv)
41 {
42         int ret_code = 0;
43         struct daemon_arg darg = { argc, argv, NULL };
44         struct modules_arg marg;
45
46 #ifdef DEBUG_ENABLED
47         mtrace();
48         mcheck(0);
49 #endif
50         ret_code = resourced_init(&darg);
51         ret_value_msg_if(ret_code < 0, ret_code,
52                          "Resourced initialization failed\n");
53         init_modules_arg(&marg, &darg);
54         modules_check_runtime_support(&marg);
55         modules_init(&marg);
56         ret_code = resourced_proc_init(darg.opts);
57         if (ret_code < 0)
58                 _E("Proc init failed");
59         sd_notify(0, "READY=1");
60
61         ecore_main_loop_begin();
62         modules_exit(&marg);
63         resourced_deinit(&darg);
64         return ret_code;
65 }