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__
29 * @brief Power off the device.
30 * @details It operates synchronously.
33 * @privilege %http://tizen.org/privilege/reboot
34 * @return @c 0 on success,
35 * otherwise a negative error value
36 * @retval #DEVICE_ERROR_NONE Successful
37 * @retval #DEVICE_ERROR_INVALID_PARAMETER Invalid parameter
38 * @retval #DEVICE_ERROR_PERMISSION_DENIED Permission denied
39 * @retval #DEVICE_ERROR_OPERATION_FAILED Operation failed
41 int device_power_poweroff(void);
45 DEVICE_SLEEP_NOT_READY,
48 /* This callback is invoked when system is going to sleep.
49 * Return DEVICE_SLEEP_READY to notify system that I am ready to sleep.
50 * sleep_time_ms: realtime in milisecond when the sleep signal emitted */
51 typedef int (*sleep_callback) (guint64 sleep_time_ms, void *user_data);
53 /* return DEVICE_ERROR_NONE on success */
54 int device_power_add_sleep_callback(sleep_callback cb, void *user_data);
55 void device_power_remove_sleep_callback(void);