Hi, On Friday, 20 July 2007 17:54, Alon Bar-Lev wrote: > > Hello, > > This patch enables the user to press "r" during snapshot writing, > in order to reboot and not shutdown. > > One more step toward suspend2 functionality... :) > > Best Regards, > Alon Bar-Lev. > > diff -urNp suspend.org/splash.c suspend/splash.c > --- suspend.org/splash.c 2007-05-12 23:37:47.000000000 +0300 > +++ suspend/splash.c 2007-07-20 18:28:51.000000000 +0300 > @@ -51,13 +51,13 @@ static int prepare_abort(struct termios > return ret; > } > > -static int key_pressed(const char key) > +static char key_pressed(void) > { > char c; > - if (read(0, &c, 1) > 0 && c == key) > - return 1; > + if (read(0, &c, 1) == 0) > + return 0; > > - return 0; > + return c; > } > > static void restore_abort(struct termios *oldtrm) > diff -urNp suspend.org/splash.h suspend/splash.h > --- suspend.org/splash.h 2007-05-12 23:37:47.000000000 +0300 > +++ suspend/splash.h 2007-07-20 18:29:42.000000000 +0300 > @@ -25,7 +25,7 @@ struct splash { > void (*read_password) (char *, int); > int (*dialog) (const char *); > int (*prepare_abort) (struct termios *, struct termios *); > - int (*key_pressed) (const char key); > + char (*key_pressed) (void); > void (*restore_abort) (struct termios *); > }; > > diff -urNp suspend.org/suspend.c suspend/suspend.c > --- suspend.org/suspend.c 2007-05-13 23:16:53.000000000 +0300 > +++ suspend/suspend.c 2007-07-20 18:41:32.000000000 +0300 > @@ -489,11 +487,18 @@ static int save_image(struct swap_map_ha > if (!(nr_pages % m)) { > printf("\b\b\b\b%3d%%", nr_pages / m); > splash.progress(20 + (nr_pages / m) * 0.75); > - if (abort_possible && > - splash.key_pressed(ABORT_KEY_CODE)) { > > - printf(" aborted!\n"); > - return -EINTR; > + switch (splash.key_pressed()) { > + case ABORT_KEY_CODE: > + if (abort_possible) { > + printf(" aborted!\n"); > + return -EINTR; > + } > + break; > + case REBOOT_KEY_CODE: > + printf (" reboot > enabled\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"); > + strcpy (shutdown_method, > "reboot");
Apart from this you should also clear the PLATFORM_SUSPEND flag in the image header. Otherwise, resume will be confused if shutdown_method is originally set to "platform". > + break; > } > } > if (!(nr_pages % writeout_rate)) > diff -urNp suspend.org/swsusp.h suspend/swsusp.h > --- suspend.org/swsusp.h 2007-03-16 18:02:23.000000000 +0200 > +++ suspend/swsusp.h 2007-07-20 18:33:42.000000000 +0300 > @@ -216,3 +216,5 @@ struct buf_block { > > #define ABORT_KEY_CODE 127 > #define ABORT_KEY_NAME "backspace" > +#define REBOOT_KEY_CODE 'r' > +#define REBOOT_KEY_NAME "r" Greetings, Rafael -- "Premature optimization is the root of all evil." - Donald Knuth ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Suspend-devel mailing list Suspend-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/suspend-devel