2 * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #ifndef __TIZEN_SYSTEM_POWER_INTERNAL_H__
18 #define __TIZEN_SYSTEM_POWER_INTERNAL_H__
27 #include "device-error.h"
31 * @brief Power off the device.
32 * @details It operates synchronously.
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
43 int device_power_poweroff(void);
47 DEVICE_WAKEUP_READY = DEVICE_SLEEP_READY,
48 DEVICE_SLEEP_NOT_READY,
52 DEVICE_SIG_SLEEP_SHORTKEY,
53 DEVICE_SIG_WAKEUP_SHORTKEY,
57 /* This callback is invoked when system is going to sleep.
58 * There can be only one callbacks per process.
59 * Return DEVICE_SLEEP_READY to notify system that I am ready to sleep
60 * when siginfo == DEVICE_SIG_SLEEP_SHORTKEY. */
61 typedef int (*sleep_callback) (guint64 sig_time_ms, enum device_siginfo siginfo, void *user_data);
63 /* return DEVICE_ERROR_NONE on success */
64 int device_power_add_sleep_callback(sleep_callback cb, void *user_data);
65 void device_power_remove_sleep_callback(void);