-int internal_poweroff_def_predefine_action(int argc, char **argv)
-{
- int ret;
- const struct device_ops *display_device_ops;
-
- telephony_start();
-
- display_device_ops = find_device("display");
- if (!display_device_ops) {
- _E("Can't find display_device_ops");
- return -ENODEV;
- }
-
- display_device_ops->exit(NULL);
- sync();
-
- gettimeofday(&tv_start_poweroff, NULL);
-
- ret = telephony_exit(PREDEF_POWEROFF);
-
- if (ret < 0) {
- powerdown_ap(NULL);
- return 0;
- }
- return ret;
-}
-
-int do_poweroff(int argc, char **argv)
-{
- return internal_poweroff_def_predefine_action(argc, argv);
-}
-
-int poweroff_def_predefine_action(int argc, char **argv)
-{
- int retry_count = 0;
- poweroff_start_animation();
- while (retry_count < MAX_RETRY) {
- if (notify_action(PREDEF_INTERNAL_POWEROFF, 0) < 0) {
- _E("failed to request poweroff to deviced");
- retry_count++;
- continue;
- }
- vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, (void*)poweroff_control_cb);
- return 0;
- }
- return -1;
-}
-
-static int hall_ic_status(void)
-{
- if (!hall_ic)
- return HALL_IC_OPENED;
- return hall_ic->status();
-}
-
-int launching_predefine_action(int argc, char **argv)
-{
- struct popup_data *params;
- static const struct device_ops *apps = NULL;
- int val;
-
- val = hall_ic_status();
- if (val == HALL_IC_CLOSED) {
- _I("cover is closed");
- return 0;
- }
- if (apps == NULL) {
- apps = find_device("apps");
- if (apps == NULL)
- return 0;
- }
- params = malloc(sizeof(struct popup_data));
- if (params == NULL) {
- _E("Malloc failed");
- return -1;
- }
- params->name = POWEROFF_POPUP_NAME;
- apps->init((void *)params);
- free(params);
- return 0;
-}
-
-int restart_def_predefine_action(int argc, char **argv)
-{
- int ret;
- int data = 0;
-
- const struct device_ops *display_device_ops;
- poweroff_start_animation();
- telephony_start();
-
- display_device_ops = find_device("display");
- if (!display_device_ops) {
- _E("Can't find display_device_ops");
- return -ENODEV;
- }
-
- pm_change_internal(getpid(), LCD_NORMAL);
- display_device_ops->exit(NULL);
- sync();
-
- gettimeofday(&tv_start_poweroff, NULL);
-
- if (argc == 1 && argv)
- data = atoi(argv[0]);
- if (data == SYSTEMD_STOP_POWER_RESTART_RECOVERY)
- ret = telephony_exit(PREDEF_RECOVERY);
- else if (data == SYSTEMD_STOP_POWER_RESTART_FOTA)
- ret = telephony_exit(PREDEF_FOTA_REBOOT);
- else
- ret = telephony_exit(PREDEF_REBOOT);
-
- if (ret < 0) {
- restart_ap((void *)data);
- return 0;
- }
- return ret;
-}
-
-int restart_recovery_def_predefine_action(int argc, char **argv)
-{
- int ret;
- char *param[1];
- char status[32];
-
- snprintf(status, sizeof(status), "%d", SYSTEMD_STOP_POWER_RESTART_RECOVERY);
- param[0] = status;
-
- return restart_def_predefine_action(1, param);
-}
-
-int restart_fota_def_predefine_action(int argc, char **argv)
-{
- int ret;
- char *param[1];
- char status[32];
-
- snprintf(status, sizeof(status), "%d", SYSTEMD_STOP_POWER_RESTART_FOTA);
- param[0] = status;
-
- return restart_def_predefine_action(1, param);
-}
-