aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2007-08-15 17:18:27 +0000
committerRafael J. Wysocki <rjw@sisk.pl>2007-08-15 17:18:27 +0000
commit7e41682e4af1e94d0d11c9199f8676d3f334b03f (patch)
tree42f420c849ec4b2c2f3a7cad25bba05c895062ff
parent28429ab05fb064779a64969e961776260c0bef0b (diff)
downloadsuspend-utils-7e41682e4af1e94d0d11c9199f8676d3f334b03f.tar.gz
Patch from Alon Bar-Lev <alon.barlev@gmail.com> to make the array of parameters
NULL-retminated.
-rw-r--r--config_parser.c6
-rw-r--r--config_parser.h4
-rw-r--r--resume.c10
-rw-r--r--suspend.c10
-rw-r--r--swsusp.h16
5 files changed, 21 insertions, 25 deletions
diff --git a/config_parser.c b/config_parser.c
index 23fdce4..74dd01d 100644
--- a/config_parser.c
+++ b/config_parser.c
@@ -26,7 +26,7 @@
* note that a non-present config file is not considered an error here
*/
-int parse(char *my_name, char *file_name, int parc, struct config_par *parv)
+int parse(char *my_name, char *file_name, struct config_par *parv)
{
char *str, *dst, *fmt, buf[MAX_STR_LEN];
struct stat stat_buf;
@@ -61,7 +61,7 @@ int parse(char *my_name, char *file_name, int parc, struct config_par *parv)
if (!*str)
continue;
/* Compare with parameter names */
- for (j = 0; j < parc; j++) {
+ for (j = 0;parv[j].name != NULL;j++) {
k = strlen(parv[j].name);
if (!strncmp(parv[j].name, str, k)) {
if (!parv[j].ptr)
@@ -94,7 +94,7 @@ int parse(char *my_name, char *file_name, int parc, struct config_par *parv)
}
}
}
- if (j >= parc)
+ if (parv[j].name == NULL)
error = -EINVAL;
} while (!error);
fclose(file);
diff --git a/config_parser.h b/config_parser.h
index 9b5814e..f130510 100644
--- a/config_parser.h
+++ b/config_parser.h
@@ -15,13 +15,13 @@
#define MAX_STR_LEN 256
struct config_par {
- char *name;
+ char *name; /* NULL on last record */
char *fmt;
void *ptr;
unsigned int len;
};
-int parse(char *my_name, char *file_name, int parc, struct config_par *parv);
+int parse(char *my_name, char *file_name, struct config_par *parv);
void usage(char *my_name, struct option options[], const char *short_options);
diff --git a/resume.c b/resume.c
index 2f0716e..3fdb1c0 100644
--- a/resume.c
+++ b/resume.c
@@ -58,7 +58,7 @@ static int use_platform_suspend;
static struct splash splash;
-static struct config_par parameters[PARAM_NO] = {
+static struct config_par parameters[] = {
{
.name = "snapshot device",
.fmt = "%s",
@@ -130,6 +130,12 @@ static struct config_par parameters[PARAM_NO] = {
.fmt = "%s",
.ptr = NULL,
},
+ {
+ .name = NULL,
+ .fmt = NULL,
+ .ptr = NULL,
+ .len = 0,
+ }
};
static unsigned int page_size;
@@ -783,7 +789,7 @@ static inline int get_config(int argc, char *argv[])
return -EINVAL;
}
}
- error = parse("resume", conf_name, PARAM_NO, parameters);
+ error = parse("resume", conf_name, parameters);
if (error) {
fprintf(stderr, "resume: Could not parse config file\n");
return error;
diff --git a/suspend.c b/suspend.c
index 3f61f42..3feca7c 100644
--- a/suspend.c
+++ b/suspend.c
@@ -93,7 +93,7 @@ static struct vt_mode orig_vtm;
static int vfd;
char *my_name;
-static struct config_par parameters[PARAM_NO] = {
+static struct config_par parameters[] = {
{
.name = "snapshot device",
.fmt = "%s",
@@ -167,6 +167,12 @@ static struct config_par parameters[PARAM_NO] = {
.ptr = shutdown_method_value,
.len = SHUTDOWN_LEN,
},
+ {
+ .name = NULL,
+ .fmt = NULL,
+ .ptr = NULL,
+ .len = 0,
+ }
};
static unsigned int page_size;
@@ -1265,7 +1271,7 @@ static inline int get_config(int argc, char *argv[])
s2ram = !s2ram;
#endif
- error = parse(my_name, conf_name, PARAM_NO, parameters);
+ error = parse(my_name, conf_name, parameters);
if (error) {
fprintf(stderr, "%s: Could not parse config file\n", my_name);
return error;
diff --git a/swsusp.h b/swsusp.h
index f027c5b..2dda5ef 100644
--- a/swsusp.h
+++ b/swsusp.h
@@ -198,22 +198,6 @@ struct buf_block {
#define SUSPEND_SWAPPINESS 100
-#define GEN_PARAM 10
-
-#ifdef CONFIG_COMPRESS
-#define COMPRESS_PARAM 1
-#else
-#define COMPRESS_PARAM 0
-#endif
-
-#ifdef CONFIG_ENCRYPT
-#define ENCRYPT_PARAM 2
-#else
-#define ENCRYPT_PARAM 0
-#endif
-
-#define PARAM_NO (GEN_PARAM + COMPRESS_PARAM + ENCRYPT_PARAM)
-
#define ABORT_KEY_CODE 127
#define ABORT_KEY_NAME "backspace"
#define REBOOT_KEY_CODE 'r'