power: rename sleep-wait add/remove function
[platform/core/api/device.git] / include / power-internal.h
1 /*
2  * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef __TIZEN_SYSTEM_POWER_INTERNAL_H__
18 #define __TIZEN_SYSTEM_POWER_INTERNAL_H__
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24 #include <glib.h>
25 #include <gio/gio.h>
26
27 #include "device-error.h"
28
29 /**
30  * @platform
31  * @brief Power off the device.
32  * @details It operates synchronously.
33  * @since_tizen 6.5
34  * @privlevel platform
35  * @privilege %http://tizen.org/privilege/reboot
36  * @return @c 0 on success,
37  *         otherwise a negative error value
38  * @retval #DEVICE_ERROR_NONE Successful
39  * @retval #DEVICE_ERROR_INVALID_PARAMETER Invalid parameter
40  * @retval #DEVICE_ERROR_PERMISSION_DENIED Permission denied
41  * @retval #DEVICE_ERROR_OPERATION_FAILED Operation failed
42  */
43 int device_power_poweroff(void);
44
45 enum {
46         DEVICE_SLEEP_READY,
47         DEVICE_WAKEUP_READY = DEVICE_SLEEP_READY,
48         DEVICE_NOT_READY,
49 };
50
51 struct device_event_info {
52         int event;    /* 0: sleep, 1: wakeup */
53         int reason;
54 };
55
56 /* return DEVICE_SLEEP_READY or DEVICE_WAKEUP_READY on finishing todo list */
57 typedef int (*sleep_callback) (const struct device_event_info *info, void *user_data);
58
59 /* return DEVICE_ERROR_NONE on success */
60 int device_power_add_sleep_wait_callback(sleep_callback cb, void *user_data);
61 void device_power_remove_sleep_wait_callback(void);
62
63 #ifdef __cplusplus
64 }
65 #endif
66
67 #endif