On Friday, 3 August 2007 01:18, Alon Bar-Lev wrote:
> 
> 1. Move main() out of s2ram.c into s2ram-main.c, this will enable s2ram.o to 
> be included
> in both s2ram and s2both without recompilation.
> 
> 2. Split whitelist.c into whitelist.h/whitelist.c as including .c is none 
> standard/unsupported.

These changes have to be looked at by Pavel and Stefan.

Greetings,
Rafael


> ---
> 
> diff -urNp suspend.org/s2ram.c suspend-0.6_beta1/s2ram.c
> --- suspend.org/s2ram.c       2007-06-17 23:51:30.000000000 +0300
> +++ suspend-0.6_beta1/s2ram.c 2007-08-02 17:36:49.000000000 +0300
> @@ -42,82 +43,3 @@ int s2ram_generic_do(void)
>       return ret;
>  } 
>  
> -#ifndef CONFIG_BOTH
> -int main(int argc, char *argv[])
> -{
> -     int i, ret = 0;
> -     int active_console = -1;
> -     struct option options[] = {
> -             { 
> -                 "help\0\tthis text.",       
> -                 no_argument,    NULL,   'h'
> -             },
> -             { 
> -                 "test\0\ttest if the machine is in the database.", 
> -                 no_argument,    NULL,   'n'
> -             },
> -             { 
> -                 "identify\0prints a string that identifies the machine.",
> -                 no_argument,    NULL,   'i'
> -             },
> -             HACKS_LONG_OPTS
> -             {   NULL,   0,      NULL,   0   }
> -     };
> -     const char *optstring = "hni" "fspmrva:";
> -
> -     while ((i = getopt_long(argc, argv, optstring, options, NULL)) != -1) {
> -             switch (i) {
> -             case 'h':
> -                     usage("s2ram", options, optstring);
> -                     exit(0);
> -             case 'i':
> -                     identify_machine();
> -                     exit(0);
> -             case 'n':
> -                     ret = machine_known();
> -                     exit(ret);
> -             case '?':
> -                     usage("s2ram", options, optstring);
> -                     exit(1);
> -                     break;
> -             default:
> -                     s2ram_add_flag(i,optarg);
> -                     break;
> -             }
> -     }
> -
> -     ret = s2ram_is_supported();
> -
> -     if (ret == S2RAM_UNKNOWN) {
> -             printf("Machine is unknown.\n");
> -             identify_machine();
> -             goto out;
> -     }
> -
> -     if (ret == S2RAM_NOFB)
> -             printf("This machine can only suspend without framebuffer.\n");
> -
> -     if (ret)
> -             goto out;
> -
> -     /* switch to console 1 first, since we might be in X */
> -     active_console = fgconsole();
> -     printf("Switching from vt%d to vt1\n", active_console);
> -     chvt(1);
> -
> -     ret = s2ram_hacks();
> -     if (ret)
> -             goto out;
> -     ret = s2ram_do();
> -     s2ram_resume();
> -
> - out:
> -     /* if we switched consoles before suspend, switch back */
> -     if (active_console > 0) {
> -             printf("switching back to vt%d\n", active_console);
> -             chvt(active_console);
> -     }
> -
> -     return ret;
> -}
> -#endif
> iff -urNp suspend.org/s2ram-main.c suspend-0.6_beta1/s2ram-main.c
> --- suspend.org/s2ram-main.c  1970-01-01 02:00:00.000000000 +0200
> +++ suspend-0.6_beta1/s2ram-main.c    2007-08-02 17:36:35.000000000 +0300
> @@ -0,0 +1,97 @@
> +/*
> + * Suspend-to-RAM
> + *
> + * Copyright 2006 Pavel Machek <[EMAIL PROTECTED]>
> + * Distribute under GPLv2.
> + */
> +
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <getopt.h>
> +#include <errno.h>
> +#include <string.h>
> +
> +#ifndef S2RAM
> +#define S2RAM
> +#endif
> +#include "vt.h"
> +#include "s2ram.h"
> +#include "configparser.h"
> +
> +int main(int argc, char *argv[])
> +{
> +     int i, ret = 0;
> +     int active_console = -1;
> +     struct option options[] = {
> +             { 
> +                 "help\0\tthis text.",       
> +                 no_argument,    NULL,   'h'
> +             },
> +             { 
> +                 "test\0\ttest if the machine is in the database.", 
> +                 no_argument,    NULL,   'n'
> +             },
> +             { 
> +                 "identify\0prints a string that identifies the machine.",
> +                 no_argument,    NULL,   'i'
> +             },
> +             HACKS_LONG_OPTS
> +             {   NULL,   0,      NULL,   0   }
> +     };
> +     const char *optstring = "hni" "fspmrva:";
> +
> +     while ((i = getopt_long(argc, argv, optstring, options, NULL)) != -1) {
> +             switch (i) {
> +             case 'h':
> +                     usage("s2ram", options, optstring);
> +                     exit(0);
> +             case 'i':
> +                     identify_machine();
> +                     exit(0);
> +             case 'n':
> +                     ret = machine_known();
> +                     exit(ret);
> +             case '?':
> +                     usage("s2ram", options, optstring);
> +                     exit(1);
> +                     break;
> +             default:
> +                     s2ram_add_flag(i,optarg);
> +                     break;
> +             }
> +     }
> +
> +     ret = s2ram_is_supported();
> +
> +     if (ret == S2RAM_UNKNOWN) {
> +             printf("Machine is unknown.\n");
> +             identify_machine();
> +             goto out;
> +     }
> +
> +     if (ret == S2RAM_NOFB)
> +             printf("This machine can only suspend without framebuffer.\n");
> +
> +     if (ret)
> +             goto out;
> +
> +     /* switch to console 1 first, since we might be in X */
> +     active_console = fgconsole();
> +     printf("Switching from vt%d to vt1\n", active_console);
> +     chvt(1);
> +
> +     ret = s2ram_hacks();
> +     if (ret)
> +             goto out;
> +     ret = s2ram_do();
> +     s2ram_resume();
> +
> + out:
> +     /* if we switched consoles before suspend, switch back */
> +     if (active_console > 0) {
> +             printf("switching back to vt%d\n", active_console);
> +             chvt(active_console);
> +     }
> +
> +     return ret;
> +}
> diff -urNp suspend.org/s2ram-x86.c suspend-0.6_beta1/s2ram-x86.c
> --- suspend.org/s2ram-x86.c   2007-08-03 00:33:20.000000000 +0300
> +++ suspend-0.6_beta1/s2ram-x86.c     2007-08-02 23:50:33.000000000 +0300
> @@ -16,7 +17,8 @@
>  #include "vbetool/vbetool.h"
>  #include "vt.h"
>  #include "s2ram.h"
>  #include "configparser.h"
> +#include "whitelist.h"
>  
>  /* From dmidecode.c */
>  void dmi_scan(void);
> @@ -36,19 +39,6 @@ char bios_version[1024], sys_vendor[1024
>  #define S2RAM_NOFB   126
>  #define S2RAM_UNKNOWN        127
>  
> -/* flags for the whitelist */
> -#define S3_BIOS     0x01     /* machine needs acpi_sleep=s3_bios */
> -#define S3_MODE     0x02     /* machine needs acpi_sleep=s3_mode */
> -#define VBE_SAVE    0x04     /* machine needs "vbetool save / restore" */
> -#define VBE_POST    0x08     /* machine needs "vbetool post" */
> -#define RADEON_OFF  0x10     /* machine needs "radeontool light off" */
> -#define UNSURE      0x20     /* unverified entries from acpi-support 0.59 */
> -#define NOFB        0x40     /* must not use a frame buffer */
> -#define VBE_MODE    0x80     /* machine needs "vbetool vbemode get / set" */
> -#define PCI_SAVE   0x100     /* we need to save the VGA PCI registers */
> -
> -#include "whitelist.c"
> -
>  void identify_machine(void)
>  {
>       if (!dmi_scanned) {
> diff -urNp suspend.org/whitelist.c suspend-0.6_beta1/whitelist.c
> --- suspend.org/whitelist.c   2007-08-03 00:33:21.000000000 +0300
> +++ suspend-0.6_beta1/whitelist.c     2007-08-02 23:53:08.000000000 +0300
> @@ -3,14 +3,8 @@
>   * and all the workarounds
>   */
>  
> -struct machine_entry
> -{
> -     const char *sys_vendor;
> -     const char *sys_product;
> -     const char *sys_version;
> -     const char *bios_version;
> -     unsigned int flags;
> -};
> +#include <stdlib.h>
> +#include "whitelist.h"
>  
>  struct machine_entry whitelist[] = {
>       { "IBM",                        "",             "ThinkPad X32", "", 
> RADEON_OFF|S3_BIOS|S3_MODE },
> diff -urNp suspend.org/whitelist.h suspend-0.6_beta1/whitelist.h
> --- suspend.org/whitelist.h   1970-01-01 02:00:00.000000000 +0200
> +++ suspend-0.6_beta1/whitelist.h     2007-08-02 23:50:04.000000000 +0300
> @@ -0,0 +1,26 @@
> +/* whitelist.h
> + * whitelist of machines that are known to work somehow
> + * and all the workarounds
> + */
> +
> +/* flags for the whitelist */
> +#define S3_BIOS     0x01     /* machine needs acpi_sleep=s3_bios */
> +#define S3_MODE     0x02     /* machine needs acpi_sleep=s3_mode */
> +#define VBE_SAVE    0x04     /* machine needs "vbetool save / restore" */
> +#define VBE_POST    0x08     /* machine needs "vbetool post" */
> +#define RADEON_OFF  0x10     /* machine needs "radeontool light off" */
> +#define UNSURE      0x20     /* unverified entries from acpi-support 0.59 */
> +#define NOFB        0x40     /* must not use a frame buffer */
> +#define VBE_MODE    0x80     /* machine needs "vbetool vbemode get / set" */
> +#define PCI_SAVE   0x100     /* we need to save the VGA PCI registers */
> +
> +struct machine_entry
> +{
> +     const char *sys_vendor;
> +     const char *sys_product;
> +     const char *sys_version;
> +     const char *bios_version;
> +     unsigned int flags;
> +};
> +
> +extern struct machine_entry whitelist[];
> --- suspend.org/Makefile      2007-07-29 21:30:27.000000000 +0300
> +++ suspend-0.6_beta1/Makefile        2007-08-03 01:14:35.000000000 +0300
> @@ -16,8 +16,8 @@ LD_FLAGS=-L/usr/local/lib
>  
>  S2RAM_LD_FLAGS = $(LD_FLAGS)
>  SWSUSP_LD_FLAGS = $(LD_FLAGS)
>  ifeq ($(ARCH), x86)
> -S2RAM_OBJ += s2ram-x86.o dmidecode.o radeontool.o vbetool/vbetool.o
> +S2RAM_OBJ += s2ram-x86.o whitelist.o dmidecode.o radeontool.o 
> vbetool/vbetool.o
>  S2RAM_LD_FLAGS += -lx86 -lpci -lz
>  else ifeq ($(ARCH), ppc)
>  S2RAM_OBJ += s2ram-ppc.o
> @@ -84,7 +84,7 @@ clean: 
>       rm -f $(BINARIES) suspend-keygen suspend.keys *.o vbetool/*.o
>  
>  #### Rules for objects
> -s2ram-x86.o: %.o : %.c %.h whitelist.c
> +s2ram-x86.o: %.o : %.c %.h
>       $(CC) $(CC_FLAGS) -c $< -o $@
>  
>  s2ram-both.o: s2ram.c s2ram.h
> @@ -105,7 +105,7 @@ dmidecode.o radeontool.o : %.o: %.c
>  s2disk:      $(SWSUSP_OBJ) suspend.c
>       $(CC) -g $(CC_FLAGS)  $^ -o $@ $(SWSUSP_LD_FLAGS)
>  
> -s2ram:       $(S2RAM_OBJ) s2ram.c
> +s2ram:       $(S2RAM_OBJ) s2ram.c s2ram-main.c
>       $(CC) -g $(CC_FLAGS) -include s2ram-$(ARCH).h $^ -o $@ $(S2RAM_LD_FLAGS)
>  
>  s2both:      $(SWSUSP_OBJ) $(S2RAM_OBJ) s2ram-both.o suspend.c 
> 
> -------------------------------------------------------------------------
> 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
> 
> 

-- 
"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

Reply via email to