[Suspend2][ 14/21] [Suspend2] Conditionally pause.

From: Nigel Cunningham
Date: Tue Jun 27 2006 - 00:48:24 EST


Pause until the user presses the space bar while we have a userui helper
and the abort flag isn't set and we're pausing or single stepping. Pausing
is also conditional on a parameter so that we can pause at some places when
singlestepping and not pause if not singlestepping.

Signed-off-by: Nigel Cunningham <nigel@xxxxxxxxxxxx>

kernel/power/ui.c | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/kernel/power/ui.c b/kernel/power/ui.c
index b11edb8..a915a75 100644
--- a/kernel/power/ui.c
+++ b/kernel/power/ui.c
@@ -466,3 +466,36 @@ void suspend_prepare_status(int clearbar
printk(KERN_EMERG "%s\n", lastheader);
}

+/* suspend_cond_pause
+ *
+ * Description: Potentially pause and wait for the user to tell us to continue.
+ * We normally only pause when @pause is set.
+ * Arguments: int pause: Whether we normally pause.
+ * char *message: The message to display. Not parameterised
+ * because it's normally a constant.
+ */
+
+void suspend_cond_pause(int pause, char *message)
+{
+#ifdef CONFIG_PM_DEBUG
+ int displayed_message = 0, last_key = 0;
+
+ while (last_key != 32 &&
+ ui_helper_data.pid != -1 &&
+ (!test_result_state(SUSPEND_ABORTED)) &&
+ ((test_action_state(SUSPEND_PAUSE) && pause) ||
+ (test_action_state(SUSPEND_SINGLESTEP)))) {
+ if (!displayed_message) {
+ suspend_prepare_status(DONT_CLEAR_BAR,
+ "%s Press SPACE to continue.%s",
+ message ? message : "",
+ (test_action_state(SUSPEND_SINGLESTEP)) ?
+ " Single step on." : "");
+ displayed_message = 1;
+ }
+ last_key = suspend_wait_for_keypress(0);
+ }
+#endif
+ schedule();
+}
+

--
Nigel Cunningham nigel at suspend2 dot net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/