/* Set new wakeup time. */ write_alarm_file(since_epoch + wake_delay); } } } __toi_power_down(toi_poweroff_method); toi_check_resleep(); } EXPORT_SYMBOL_GPL(toi_power_down); static struct toi_sysfs_data sysfs_params[] = { #if defined(CONFIG_ACPI) SYSFS_STRING("lid_file", SYSFS_RW, lid_state_file, 256, 0, NULL), SYSFS_INT("wake_delay", SYSFS_RW, &wake_delay, 0, INT_MAX, 0, NULL), SYSFS_STRING("wake_alarm_dir", SYSFS_RW, wake_alarm_dir, 256, 0, NULL), SYSFS_INT("post_wake_state", SYSFS_RW, &post_wake_state, -1, 5, 0, NULL), #endif SYSFS_UL("powerdown_method", SYSFS_RW, &toi_poweroff_method, 0, 5, 0), SYSFS_INT("did_suspend_to_both", SYSFS_READONLY, &did_suspend_to_both, 0, 0, 0, NULL) }; static struct toi_module_ops powerdown_ops = { .type = MISC_HIDDEN_MODULE, .name = "poweroff", .initialise = powerdown_init, .cleanup = powerdown_cleanup,
if (storage_manager_action) toi_prepare_usm(); else toi_cleanup_usm(); storage_manager_last_action = storage_manager_action; } /* * User interface specific /sys/power/tuxonice entries. */ static struct toi_sysfs_data sysfs_params[] = { SYSFS_NONE("simulate_atomic_copy", storage_manager_simulate), SYSFS_INT("enabled", SYSFS_RW, &usm_ops.enabled, 0, 1, 0, NULL), SYSFS_STRING("program", SYSFS_RW, usm_helper_data.program, 254, 0, NULL), SYSFS_INT("activate_storage", SYSFS_RW, &storage_manager_action, 0, 1, 0, storage_manager_activate) }; static struct toi_module_ops usm_ops = { .type = MISC_MODULE, .name = "usm", .directory = "storage_manager", .module = THIS_MODULE, .storage_needed = usm_storage_needed, .save_config_info = usm_save_config_info, .load_config_info = usm_load_config_info, .memory_needed = usm_memory_needed, .sysfs_data = sysfs_params,